pushViewController没有navigationcontroller

dub*_*eat 14 uitableview uinavigationcontroller ios

我有一个UITableViewController类的类.这个类有一个UINavigationBar类型的成员,我用它来添加表视图的编辑按钮.

使用此方法调用无效.

[self.navigationController pushViewController:controller];
Run Code Online (Sandbox Code Playgroud)

如何在选择表行而不将UITableViewCOntroller包装在UINavigationController中时将详细视图推送到视图上?

Fil*_*lic 38

如果您不想使用导航控制器,最接近的替代方案是模态视图控制器.

[self presentViewController:controller animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

这会将控制器从底部滑入屏幕,或者如果更换控制器,modalTransitionStyle它可以翻转或淡入.

要关闭控制器只需调用:

[self dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)


Jos*_*osé 15

还可以做的是像往常一样使用导航控制器然后隐藏它.

要使用故事板隐藏导航控制器:选择它并取消选中属性检查器中的"显示导航栏".其他人可能会建议隐藏每个控制器中的导航栏,但问题是它会出现一毫秒然后消失.

Navigation Controller属性选项卡


Pet*_*ter 10

我会将UITableView包装在UINavigationController中,然后隐藏UINavigationBar.

[self.navigationController setNavigationBarHidden:YES animated:NO];
Run Code Online (Sandbox Code Playgroud)

然后创建一个后退按钮,将ViewController弹出堆栈.

[self.navigationController popViewControllerAnimated:YES]
Run Code Online (Sandbox Code Playgroud)


Ano*_*mie 6

如果没有导航控制器,则无法将视图控制器推送到导航控制器.如果您想要推动控制器并让它显示最顶层的控制器和所有内容,只需使用UINavigationController并完成它.

您可以将任意UINavigationItem推送到UINavigationBar,当用户使用后退按钮时,将通知您的栏代表,以便您采取适当的操作.有关更多信息,请参阅文档.