pushViewController推送但没有视图更改

时间:2011-11-01 21:14:07

标签: ios uiviewcontroller uinavigationcontroller

当我尝试从我的根视图控制器中将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}}

1 个答案:

答案 0 :(得分:1)

使用

怎么样?
[self.navigationController pushViewController:missionViewCtrlr];
rootViewController中的

?我假设rootViewController已被推送到UINavigationController并且导航控制器的视图已添加为应用委托中self.window的子视图?

顺便说一句,您可以通过简单地说

来简化部分代码
if(!missionViewCtrlr)
  self.missionViewCtrlr = [[MisionViewController alloc] init...];