не понимаю, как использовать навигационный контроллер в iphone - PullRequest
0 голосов
/ 08 сентября 2011

Я крайне новичок в iphone и у меня следующее недоразумение.

По всему Интернету учебники о том, как использовать NavigationController, программно написано:

 NavigationController must be declared in applicationDidFinishLaunching and must be init with a root.After that you can add views to it.

У меня есть это: UIViewController класс, означающий (AdiViewController.h, AdiViewController.m and AdiViewController.xib), а не Delegate file, означающий, что нет applicationDidFinishLaunching метод.

То, что я хочу сделать, это из моего класса - AdiViewController при нажатии кнопки, чтобы перейти к другому виду. Я понимаю, что мне нужен NavigationController, который должен сохранять мои взгляды с корнем AdiViewController.

Но моя проблема в том, где я должен инициализировать NavigationController в viewDidAppear ?? ... потому что у меня нет файлов Delegate.

Если бы вы могли привести минимальный пример с моей небольшой проблемой, это было бы здорово. Я уверен, что для тех, кто старше, это ничего, но все же я не понимаю.

1 Ответ

2 голосов
/ 08 сентября 2011

NavigationController должен быть объявлен в applicationDidFinishLaunching -> это не так. В вашем AdiViewController, если у вас есть кнопка, когда вы нажимаете эту кнопку, вы хотите загрузить навигационный контроллер, верно?

// Hook this IBAction to your button in AdiViewController
- (IBAction)pushNavController
{
   AnotherViewController* rootView = [[AnotherViewController alloc] initWithNibName:@"Anotherview" bundle:nil];
   UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:rootView];
   [rootView release];
   [self presentModalViewController:navController animated:YES];
   [navController release];
}

Если вы находитесь в AnotherViewController, то есть вы находитесь в корневом контроллере представления контроллера навигации. Вы должны нажать и выдвинуть контроллеры представления оттуда Например, если у вас есть кнопка в AnotherViewController:

// push next view controller onto navigation controller's stack
    - (IBAction)pushNextViewController
    {
      NextViewController* nextView = [[NextViewController alloc] initWithNibName:@"NextView" bundle:nil];
      [self.navigationController pushViewController:nextView animated:YES];
      [nextView release];
    } 

// Similarly if you want to go back to AnotherViewController from NextViewController you just pop that from navigation controller's stack
- (IBAction)pushNextViewController
    {
      [self.navigationController popViewControllerAnimated:YES];
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...