pushViewController выдвигает, но не меняет представление - PullRequest
0 голосов
/ 02 ноября 2011

Когда я пытаюсь выдвинуть подкласс UIViewController (MissionViewController) на UINavigationController из моего корневого контроллера представления, метод viewDidLoad вызывается, только если я ссылаюсь на базовое представление после инициализации контроллера представления. Однако даже при вызове метода экран не обновляется.

И контроллер вида, и контроллер навигации не равны нулю. Владелец файла в MissionView.xib имеет значение MissionViewController. Свойство view владельца файла указывает на представление nib. Я убедился, что свойство topViewController контроллера навигации указывает на объект MissionViewController.

Если я изменю MissionViewController на контроллер корневого представления, представление загружается нормально. Видел несколько похожих постов, но все еще возникают проблемы.

rootViewController.h

@interface TreeGraphController : UIViewController 
{
    MissionViewController *missionViewCtrlr;
}
@property(nonatomic, retain) MissionViewController *missionViewCtrlr;

rootViewController.m

#import "MissionViewController.h"
...
if (!missionViewCtrlr)
{
    MissionViewController *ctrlr = [[MissionViewController alloc] initWithNibName:@"MissionView" bundle:nil];
    ctrlr.view.hidden = NO;
    self.missionViewCtrlr = ctrlr;
    [ctrlr release];
}

myAppDelegate *del = [[UIApplication sharedApplication] delegate];
[del.navigationController pushViewController:missionViewCtrlr animated:NO];

1 Ответ

1 голос
/ 02 ноября 2011

Как насчет использования

[self.navigationController pushViewController:missionViewCtrlr];

в rootViewController? Я предполагаю, что rootViewController было выдвинуто в UINavigationController, и что представление контроллера навигации было добавлено как подпредставление self.window в делегате приложения?

Кстати, вы можете упростить часть своего кода, просто сказав

if(!missionViewCtrlr)
  self.missionViewCtrlr = [[MisionViewController alloc] init...];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...