在先前推送的视图控制器上点击 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>
有什么想法吗?
提前致谢。
答案 0 :(得分:0)
推送的viewController的后退按钮可以连接到IBAction
-(IBAction)backButtonPressed:(id)sender{
[self.navigationController popViewControllerAnimated:YES];
}
这会让你回到堆栈前面的前一个视图控制器。
希望这有帮助。