当我尝试从我的根视图控制器中将UIViewController
子类(MissionViewController
)推送到UINavigationController
时,只有在我引用viewDidLoad
方法时才会调用MissionView.xib
方法初始化视图控制器后的基础视图。但是,即使使用调用的方法,屏幕也不会更新。
视图控制器和导航控制器都不是零。 MissionViewController
中的文件所有者设置为topViewController
。文件所有者的view属性指向nib视图。我已经验证导航控制器的MissionViewController
属性指向MissionViewController
对象。
如果我将@interface TreeGraphController : UIViewController
{
MissionViewController *missionViewCtrlr;
}
@property(nonatomic, retain) MissionViewController *missionViewCtrlr;
更改为根视图控制器,则视图加载正常。看到几个类似的帖子,但仍然有问题。
rootViewController.h
#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];
rootViewController.m
{{1}}
答案 0 :(得分:1)
使用
怎么样?[self.navigationController pushViewController:missionViewCtrlr];
rootViewController
中的?我假设rootViewController
已被推送到UINavigationController
并且导航控制器的视图已添加为应用委托中self.window的子视图?
顺便说一句,您可以通过简单地说
来简化部分代码if(!missionViewCtrlr)
self.missionViewCtrlr = [[MisionViewController alloc] init...];