解除(或弹出)我手动添加的NavigationController不起作用

时间:2015-07-09 21:31:04

标签: ios objective-c uiviewcontroller uinavigationcontroller

在我的AppDelegate中,我收到以下代码,这些代码在收到通知后执行:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UINavigationController *navigationController = (UINavigationController *)[storyboard instantiateViewControllerWithIdentifier:@"VideoPlayback"];

VideoPlaybackViewController *videoPlaybackViewController = (VideoPlaybackViewController *)[navigationController topViewController];
videoPlaybackViewController.publishing = YES;
[(UINavigationController*)self.window.rootViewController pushViewController:navigationController animated:NO];

成功启动了新的ViewController并显然将其添加到导航堆栈,因为我可以使用导航栏上的后退按钮返回并随后关闭视图控制器。

问题是,我不想使用导航栏。事实上,我想隐藏后退按钮。不幸的是,当我尝试使用它应该使用的方法来解除viewcontroller时,它什么都不做。我已经尝试使用这两个来关闭视图控制器:

[self dismissViewControllerAnimated:YES completion:nil];
[self.navigationController popViewControllerAnimated:YES];

我做错了什么?感谢。

1 个答案:

答案 0 :(得分:2)

您正试图将导航控制器推入导航控制器,导致控制器不能很好地结束。

[(UINavigationController*)self.window.rootViewController pushViewController:navigationController animated:NO];

可能需要更改为:

[(UINavigationController*)self.window.rootViewController pushViewController:videoPlaybackViewController animated:NO];