pushViewController没有navigationcontroller

我有一个UITableViewControllertypes的类。 这个类有一个UINavigationBartypes的成员,用于添加表视图的编辑button。

使用这种方法调用是无效的。

[self.navigationController pushViewController:controller]; 

在UINavigationController中select一个没有包装我的UITableViewCOntroller的表格行之后,如何将详细信息视图推送到视图上?

如果没有导航控制器,则无法将视图控制器推到导航控制器上。 如果你想推控制器,并显示最顶层的控制器和所有的东西,只需使用UINavigationController并完成它。

您可以将任意的UINavigationItem推送到您的UINavigationBar上,当用户使用后退button时,您的酒吧的代表将被通知,以便您可以采取适当的措施。 有关更多信息,请参阅文档 。

如果你不想使用导航控制器,最接近的select是模态视图控制器。

 [self presentViewController:controller animated:YES completion:nil]; 

这将从底部滑动控制器到你的屏幕,或者如果你改变控制器的modalTransitionStyle它可以翻转或淡入。

要解散控制器只是打电话给:

 [self dismissViewControllerAnimated:YES completion:nil]; 

我会将UITableView包装在UINavigationController中,并隐藏UINavigationBar。

 [self.navigationController setNavigationBarHidden:YES animated:NO]; 

然后创build一个后退button,将ViewController从堆栈中popup。

 [self.navigationController popViewControllerAnimated:YES] 

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

要使用情节串联图板隐藏导航控制器,请选中它,并在属性检查器中取消选中“显示导航栏”。 其他人可能会build议隐藏在每个控制器中的导航栏,但问题是,它会出现一毫秒,然后消失。

导航控制器属性标签

确实没有UINavigationController你不能推视图控制器。 你宁愿目前的视图控制器模态通过UIViewController.present(_ viewControllerToPresent:, animated:, completion:)

但是可以创build一个自定义的segue来显示视图控制器,就好像它是一个push(或者其他任何你想要的animation),尽pipe看起来使用UINavigationController只是UINavigationController了一些。

这里有一些相关的文档链接:

UINavigationController类参考

自定义过渡animation

呈现模态视图控制器