当我尝试从根视图控制器中将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];
最佳答案
那使用呢
[self.navigationController pushViewController:missionViewCtrlr];
在
rootViewController
中?我假设rootViewController
已被推送到UINavigationController
,并且导航控制器的视图已添加为应用程序委托中self.window的子视图?顺便说一句,您可以仅通过说一下来简化部分代码
if(!missionViewCtrlr)
self.missionViewCtrlr = [[MisionViewController alloc] init...];
关于ios - pushViewController推送但没有 View 更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7972995/