返回后,UINavigationController为null

时间:2014-07-27 21:01:23

标签: objective-c iphone ios7 uinavigationcontroller

在先前推送的视图控制器上点击 Back 后,UINavigationController viewControllers属性为null,我遇到了麻烦。

AppDelegate中的根视图控制器使用该代码定义:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.backgroundColor = [UIColor whiteColor];

    StartViewController *startVc = [[StartViewController alloc] initWithNibName:@"StartViewController" bundle:nil];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:startVc];
    self.window.rootViewController = navigationController;
    [self.window makeKeyAndVisible];
    return YES;
}

StartViewController我隐藏了- (void)viewWillAppear:(BOOL)animated内的导航栏,其中我还有一个UIButton实例,当我点击该代码时,我会推送下一个视图控制器:

- (IBAction)buttonTapped:(id)sender {

    PhilosophyViewController *philsophyVc = [[PhilosophyViewController alloc] initWithNibName:@"PhilosophyViewController" bundle:nil];
    [self.navigationController pushViewController:philsophyVc animated:YES];
}

我正如预期的那样前往下一个视图。但是当点击导航栏上的 Back 按钮时,上一个视图(StartViewController)为空,当检查导航控制器的viewControllers属性时,它是否为空? / p>

有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

推送的viewController的后退按钮可以连接到IBAction

 -(IBAction)backButtonPressed:(id)sender{

 [self.navigationController popViewControllerAnimated:YES];

}

这会让你回到堆栈前面的前一个视图控制器。

希望这有帮助。