我有两个VC (MapController和ObjectListController)。我把他们放在导航控制器(我需要导航条与按钮之间切换,看上去像图片)。

但是,当我单击到NavButton时,我切换到了ObjectList,但是出现了不需要的BackButton项。ObjectListController有相同的按钮切换到MapController。
如何通过正确的方式在两个VC之间进行这样的行为:从一个切换到另一个而不将它们推送到导航堆栈?
现在,按钮和VC连接使用自定义segue没有任何代码。
PS:如果我删除导航控制器包装,我没有看到导航条放置按钮进行切换。
发布于 2015-07-28 06:24:16
仍然可以使用导航控制器按正常方式推送/弹出,只需隐藏默认情况下提供的后退按钮:
为此,您可以在hidesBackButton中设置属性ObjectListController:
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.hidesBackButton = true
// ...
}发布于 2015-07-28 06:45:12
要选择更好的方法,您需要知道ObjectListController将做什么。对于一个简单的显示视图控制器,您可以向它推送/呈现并自定义您自己的导航条。后退按钮实际上是一个可以创建和自定义的UIBarButtonItem。强烈推荐这个。顺便说一下,您甚至可以隐藏系统导航栏并使用UIView进行模拟。
如果这两个控制器之间存在复杂的交互关系,则可以尝试选项卡条控制器,然后只需隐藏选项卡条。让按钮选择器方法执行切换选项卡操作。
如果ObjectListController足够简单,甚至可以使用UIView?作为当前视图控制器的属性来替换ObjectListController。
https://stackoverflow.com/questions/31668692
复制相似问题