首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UISegmentedControl in UINavigationController

UISegmentedControl in UINavigationController
EN

Stack Overflow用户
提问于 2014-01-10 18:51:30
回答 2查看 260关注 0票数 0

我有两个UITableViewController的“花”和“树”。如果您选择了一种特定的花或树,将提供一些详细的信息。这是大家都知道的标准行为。我想取得的成果如下:

这些UITableViewControllers应该由一个UINavigationController来管理,并且用户应该能够通过放置在UINavigationController头中的UISegmentedControll来选择它们。因此,用户可以通过与UITableViewControllers交互在UISegmentedControl之间切换。如果用户选择一种特定的花或树,则应提供详细信息,并将UISegementedControl替换为后退按钮。

这是可能的吗?我怎样才能做到?如果不清楚,我可以画几幅画:-)

谢谢你克里斯蒂安

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-10 19:13:09

导航控制器不是这样工作的。导航控制器管理视图控制器的堆栈。在导航栏中有一个分段控制器,让它在子视图控制器之间切换--如果你能让它工作的话--违反了苹果的人机界面准则。苹果可能会拒绝你的应用程序,如果你真的让它工作。

您所描述的更像是一个选项卡条控制器。我为一个客户端开发了一个应用原型,它使用了一个父视图控制器,它是选项卡条控制器上的一个变体,在底部有一个分段的控件,执行您所描述的操作。

您可以构建您自己的自定义父视图控制器,它可以执行您所描述的操作,但是您应该而不是尝试让它对导航控制器中的视图控制器堆栈进行洗牌。

票数 1
EN

Stack Overflow用户

发布于 2014-01-10 19:27:45

这是可行的,不管它是否可取。导航控制器中的VC不是对等点--其中一个必须是根,另一个必须被推送并弹出。所以你可以这么做:

  • VC1是根,并设置分段控件,使自己成为valueChanged的目标。
  • 如果分段控件的值更改为另一个段,则按VC2 (如果需要,使用segue,在IB中设置)。
  • VC1仍然在堆栈上,并且仍然会收到来自控件的valueChanged通知。
  • 当值更改为原始段时,让导航控制器弹出到根。

您可能希望在VC2上隐藏后退按钮。

关于明智性:我希望有一个很好的理由来做这个,而不是标准的模式。是过渡时期的幻灯片动画吗?它可以在没有导航风险控制的情况下创建。是让每个片段呈现一个视图控制器而不是一个视图吗?可以证明,nav vc是一个很好的,已经构建好的容器vc,使用它可以为您节省一些麻烦。这是非常不可能让你的应用程序被苹果拒绝,海事组织。

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

https://stackoverflow.com/questions/21052118

复制
相关文章

相似问题

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