pushViewController не заставляет новый контроллер рисовать вид - PullRequest
1 голос
/ 03 октября 2011

Предисловие: я не использую * .xib файлы.

Я создаю экземпляр UINavigationController в классе, который эффективно служит моим «rootViewController».Этот rootViewController также имеет два члена UITableViewController, которые рисуются в разных частях экрана iPad.Один из которых установлен в качестве корневого представления для контроллера навигации.Давайте назовем это tableViewControllerA.

Проблема в том, что когда я вызываю pushViewController на действительном UINavigationController, я не вижу эффекта: [tableViewControllerA.navigationController pushViewController: tableViewControllerX animated: YES];

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

Казалось, в моей реализации произошел разрыв, и пришло время сослаться на рабочий пример в моей среде (xcode 4.0).Предполагая, что стандартные шаблоны предоставят рабочую основу, я создал новые навигационные приложения.Я просто изменил didFinishLaunchingWithOptions: следующим образом.

    UIViewController *view1 = [[UIViewController alloc] init];
    UIViewController *view2 = [[UIViewController alloc] init];

    view1.title = @"view1";
    view2.title = @"view2";

    [self.navigationController pushViewController:view1 animated:YES];
    [self.navigationController pushViewController:view2 animated:YES];

    self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:view1];

    [view1 release];
    [view2 release];

Я нашел похожие результаты.Когда я запускаю симулятор, заголовок экрана читает заголовок того, на что указывает self.window.rootViewController.С кодом как есть, заголовок получающегося главного экрана читается как «view1».Когда я initWithRootViewController: view2, в результате главный экран читает «view2».

Так что, пожалуйста, скажи мне, что я тупой, потому что XYZ ... Спасибо.

Ответы [ 2 ]

3 голосов
/ 03 октября 2011

Вот несколько ссылок и предложений:

Простой учебник для приложений на основе навигации:

http://humblecoder.blogspot.com/2009/04/iphone-tutorial-navigation-controller.html

Вот еще один пример создания пошагового контроллера навигациии добавление просмотров:

http://www.icodeblog.com/2008/08/03/iphone-programming-tutorial-transitioning-between-views/

и здесь немного вперед с контроллером панели навигации + вкладка: http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/CombiningToolbarandNavigationControllers/CombiningToolbarandNavigationControllers.html

1 голос
/ 03 октября 2011

Не видя ваш код, у меня есть 2 теории:

  1. Ваш синтаксис и вызовы неверны, когда вы нажимаете. Используйте это как модель:

    -(void)Examplemethod {
        AnotherClassViewController *viewController = [[[AnotherClassViewController alloc] initWithNibName:@"AnotherClassView" bundle:nil] autorelease];
    
        [self.navigationController pushViewController:viewController animated:YES];
    }
    
  2. Вы никогда не добавляете контроллер навигации в иерархию представления, которая также никогда не добавляет представление. Взгляните на это .

...