TabBarController isKindOfClass - проблема с UINavigationController - PullRequest
0 голосов
/ 05 января 2010

У меня есть TabBar с ViewController в нем. Я делаю это в моем AppDelegate. Итак, у меня есть один UINavigationController

test1ViewController = [[Test1ViewController alloc] init];
test2ViewController = [[Test2ViewController alloc] init];
test3ViewController = [[Test3ViewController alloc] init];

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController: test2ViewController];

NSArray* controllers = [NSArray arrayWithObjects: test1ViewController, navigationController, test3ViewController, nil];
[self.tabBarController setViewControllers:controllers animated:YES];

[navigationController release];

Теперь у меня проблема с этой строкой исходного кода:

[(Test2ViewController *)[appDelegate.myTabBarController selectedViewController] methodName:arg1 withTag:arg2];

Здесь будет SIGBRT, потому что selectedViewController в этом случае является "UINavigationController". Но я хочу вызвать метод "Test2ViewController". Как я мог это сделать? Обычно я также делаю это:

if([[appDelegate.myTabBarController selectedViewController] isKindOfClass:[Test2ViewController class]]) { ... }

Но это также не помогло, потому что это UINavigationController. Как это исправить? Кто-нибудь знает?

Большое спасибо заранее и наилучшими пожеланиями.

1 Ответ

2 голосов
/ 05 января 2010

Попробуйте следующее:

UINavigationController   *navController = (UINavigationController *) [appDelegate.myTabBarController selectedViewController];
Test2ViewController      *viewController = (Test2ViewController *) [[navController viewControllers] objectAtIndex: 0];

[viewController methodName:arg1 withTag:arg2];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...