2016-08-12 6 views
1

У меня есть UIViewController во время выполнения. Я добавляю представления в этот контроллер представления. Programmatically.Now Я хочу напечатать иерархию представлений этого контроллера представлений из любого другого контроллера представления. Я хочу знать, какой точный вид добавлен. Например, если я добавил точку зрения, как этотКак получить иерархию представления с деталью контроллера вида с любого другого контроллера представления?

UIView *main_view=[UiView alloc]initwithFrame:CGRectMake(20,20,34,80)]; 

Тогда я хочу, чтобы напечатать точное имя этого view.It печатает только адрес этого вид & кадра details.please предложить мне, как я могу сделать это?

+0

Какое имя? У представления нет имени. – rmaddy

+0

Если вам нужно «точное имя», вы должны «точно» указать, что вы подразумеваете под этим – DAXaholic

+0

, как я сделал экземпляр UIView main_view, тогда он должен напечатать это имя instancce main_view – Techiee

ответ

0

Вы должны рекурсивно перебирать подпункты.

- (void)listSubviewsOfView:(UIView *)view { 

    // Get the subviews of the view 
    NSArray *subviews = [view subviews]; 

    // Return if there are no subviews 
    if ([subviews count] == 0) return; // COUNT CHECK LINE 

    for (UIView *subview in subviews) { 

     // Do what you want to do with the subview 
     NSLog(@"%@", subview); 

     // List the subviews of subview 
     [self listSubviewsOfView:subview]; 
    } 
} 
0
//You can set unique tag to each subview and then when you fetch view the compare view tag and if it match with the particule tag, that will be the view for which you are looking for. 


UIView *main_view=[UiView alloc]initwithFrame:CGRectMake(20,20,34,80)]; 
main_view.tag = 1000; 
[self.view addSubView:main_view]; 



// fetch view 
UIView *view = [self.view viewWithTag:1000]; 
if (view.tag == 1000){ 
    NSLog("This is view - main_view"); 
} 
Смежные вопросы