2015-10-21 3 views
0

я искал для этого на SO и другие сайты, но не нашел ничего полезногоНайти имя контроллера базы вида

То, что я есть .. один базовый класс сказать TOPViewController.h/.m В этом классе я создал свой контроль и я использую этот класс во всех моих других представлениях, создавая объект этого класса.

Say, ViewController1, ViewController2, ViewController3 мои другие взгляды и я использую TOPViewController все эти взгляды.

Теперь мой текущий вид ViewController2, который виден. Я прыгнул от ViewController1 до ViewController2.

сейчас в моем TOPViewController как я узнаю, что является моим текущим viewcontroller видимым.

Все контроллеры ракурса добавления объекта TOPViewController в [self.view addSubview:topViewObj];

Вот код, добавив мой TOPViewController во всех видах,

topBarViewObj = [[TopBarViewController alloc]init]; 
    topBarViewObj.view.backgroundColor = [UIColor whiteColor]; 
    topBarViewObj.view.frame = CGRectMake(0, 0, 320, 50); 
    topBarViewObj.titleLable.text = @"TEST"; 
    [self.view sendSubviewToBack:topBarViewObj.view]; 
    [self.view addSubview:topBarViewObj.view]; 

Пожалуйста, наставит меня за то же самое. Заранее спасибо ..

+0

Вы используете 'UINavigationController'? – Jasper

+0

есть. Я использую навигационный контроллер – Sagar

+1

использовать этот NSStringFromClass ([self class]) –

ответ

2

Если вы хотите т знать, что самый верхний UIViewController виден в соответствии с вашими UINavigationController (так что последний UIViewController, что была отодвинута на вашем UINavigationController стеке):

self.navigationController.topViewController; 
+0

: - Я пробовал этот код в viewWillAppear из TOPViewController, он дает мне Sagar

+0

Мое предположение - 'self.navigationController' - это нуль. У вас есть публичная собственность для вашего 'UINavigationController' в вашем' AppDelegate'? Если это так, вы можете попробовать получить доступ к этому вместо 'self.navigationController' – Jasper

+0

Nope .... У меня нет открытого свойства для моего UINavigationController – Sagar

0

если вы используете UINavigationControoler

вы можете получить baseViewController

baseViewControoer = [self.navigationController.viewControllers firstObject] 

Но если вы не использовали следующую строку

[self.navigationController pushViewController: animated:]; 

вы не получите выше результата

+0

да, вы правы – Jamil

+0

Мне нужно найти в моем TOPViewController, он дает мне нуль – Sagar

+0

У вас есть поиск, который является верхним видом в вашем topViewController? Ваши взгляды - UIViews? или они смотрятКонтроллеры? – iAnurag

0

как вы добавляете вид TopBarViewController с addSubView на ваш взгляд, так что вы просто попробуйте получить родительский класс по телефону

`id parentClass = [self.view parentViewController]; ` 
and then try with 
`if([parentClass isKindOfClass[ViewController1 Class]]){ 
// view 1 
} 
else if ([parentClass isKindOfClass[ViewController2 Class]]) 
{ 
    // view 2 
} 
else if ([parentClass isKindOfClass[ViewController3 Class]]) 
{ 
    // view 3 
} 
` 

Это может сработать для вас. Дай мне знать.

Смежные вопросы