UINavigationController pushViewController из подкласса tableViewController - PullRequest
0 голосов
/ 09 августа 2011

Я вижу странное поведение приложения, когда пытаюсь вытолкнуть контроллер представления из подкласса uitableviewcontroller.

Позвольте мне сначала объяснить это. Я создал основной кончик, который связан с rootViewController (appDelegate), который находится внутри navigationController. В этот кончик добавили UITableView и пользовательский UITableViewController подкласс News_TableViewController, как показано на скриншоте:

nib connections

Когда я пытаюсь выполнить приведенный ниже код, я ничего не получаю:

My_WebView *webView = [[My_WebView alloc] initWithNibName:@"My_WebView" bundle:nil];
[self.navigationController pushViewController:webView animated:YES];

Затем я проверил объект self.navigationController, но я дал ему NULL:

NSLog(@"OBJ: %@",self.navigationController);

Как получилось, что я не получаю ссылку на navigationController, несмотря на то, что мой пользовательский класс на самом деле живет под навигационным контроллером?

Спасибо

1 Ответ

2 голосов
/ 09 августа 2011

Как вы упомянули, News_TableViewController - это UITableViewController, следовательно, UIViewController.Я думаю, что вы не инициализировали навигационный контроллер!Рекомендованным способом является запуск navigationController в методе делегата вашего класса appDelegate следующим образом:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
RootViewController *rootViewController = [[RootViewController alloc]init];
_navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}

, где RootViewController - это класс News_TableViewController.

...