首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从另一个VC打开一个VC,而不将它们推到导航堆栈(Swift)

问从另一个VC打开一个VC,而不将它们推到导航堆栈(Swift)
EN

Stack Overflow用户
提问于 2015-07-28 06:18:40
回答 2查看 238关注 0票数 0

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

​

​

但是,当我单击到NavButton时,我切换到了ObjectList,但是出现了不需要的BackButton项。ObjectListController有相同的按钮切换到MapController。

如何通过正确的方式在两个VC之间进行这样的行为:从一个切换到另一个而不将它们推送到导航堆栈?

现在,按钮和VC连接使用自定义segue没有任何代码。

PS:如果我删除导航控制器包装,我没有看到导航条放置按钮进行切换。

EN

回答 2

Stack Overflow用户

发布于 2015-07-28 06:24:16

仍然可以使用导航控制器按正常方式推送/弹出,只需隐藏默认情况下提供的后退按钮:

为此,您可以在hidesBackButton中设置属性ObjectListController:

代码语言:javascript
复制
override func viewDidLoad() {
    super.viewDidLoad()

    self.navigationItem.hidesBackButton = true

    // ...
}
票数 0
EN

Stack Overflow用户

发布于 2015-07-28 06:45:12

要选择更好的方法,您需要知道ObjectListController将做什么。对于一个简单的显示视图控制器,您可以向它推送/呈现并自定义您自己的导航条。后退按钮实际上是一个可以创建和自定义的UIBarButtonItem。强烈推荐这个。顺便说一下,您甚至可以隐藏系统导航栏并使用UIView进行模拟。

如果这两个控制器之间存在复杂的交互关系,则可以尝试选项卡条控制器,然后只需隐藏选项卡条。让按钮选择器方法执行切换选项卡操作。

如果ObjectListController足够简单,甚至可以使用UIView?作为当前视图控制器的属性来替换ObjectListController。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31668692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档