ios - 嵌套的 UINavigationController

标签 ios objective-c

我是 iOS 开发的新手,我想制作类似附加屏幕截图的东西。

enter image description here

我读过嵌套的 UINavigationControllers 不是一个好主意,如果不是不可能的话,所以我非常愿意接受关于如何实现我想要的东西的想法。

在我的第二个屏幕上,我想在两个 View 之间来回切换(不使用手势和推送动画),同时保持静态页眉和页脚。

我知道如何进行推送转场的唯一方法是使用 UINavigationController,因此我认为需要嵌套。

我该如何实现?我认为在我的第二个 UIViewController 中我可以以编程方式创建一个 UINavigationController 并将其添加到 self.view,但我最终这样做了:

self.subNavigationController = [UINavigationController alloc] initWithRootViewController:[someVC alloc] init]];
[self.view addSubview: self.subNavigationController.view]

但这只是将 self.subNavigationController 的 View 添加到 self.view,而不是 self.subNavigationController 本身。

就像我说的,我很容易偏离我应该如何处理它的方式,欢迎任何建议。

最佳答案

好的,如果我没猜错,那么您想要的是一个可以在不同 View 之间导航的应用(就像任何其他应用一样)。

这将使用 UINavigationController(我们称其为“nav1”),这是您可以接受的部分。

但是,您还需要一个具有静态导航栏的 View 。也就是说,就 nav1 而言,这只是应用程序导航的一部分。它还希望在那里有两个潜在的观点。 ( map 和表格 View )并且它的底部也会有一个静态栏(我认为在 IB 中这是一个工具栏)。让我们称之为“mapAndTableViewController”。

您还没有确切说明这是如何工作的,但您不想在它们之间使用滑动手势。所以我猜你会有一个按钮或其他东西可以在它们之间交换?

像这样的……

http://www.youtube.com/watch?v=eg6vWGh67zk&feature=youtube_gdata_player

我这样做的方法是使用带有 ScrollView 的单个 View Controller 。在 ScrollView 上设置滚动禁用并设置分页启用。这听起来很奇怪,但这从 ScrollView 中删除了触摸滚动,同时仍然允许代码访问。

现在,在 mapAndTableViewController 中填充 ScrollView 的左侧和右侧。

现在您要做的是获取两个 View Controller ...mapViewControlleryourTableViewController 并实例化它们。然后将这些controller的view分别添加到scrollview的左右两侧。

基本上您将拥有三个 View Controller 。一种用于 ScrollView ,一种用于 map View ,一种用于表格 View 。

如果您没有任何进一步的解释,除此之外我真的无能为力,因为我不完全理解您要实现的目标。

希望这有助于...

关于ios - 嵌套的 UINavigationController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17475073/

相关文章:

ios - 坚持在 Swift 和 MapKit 中使用 MKPinAnnotationView()

ios - 从一个 ViewController 到另一个 Webview 的 HTML 文本

ios - SwiftUI NavigationView 在 iOS 15 上立即自行弹出 View

ios - 异步调度队列中只有两个任务并发运行

objective-c - 将 UIView 捕获为 UIImage

objective-c - 确定 SCNBox 的哪一侧被触摸,Scene Kit ios

ios - 带有颜色的 UILabel 文本删除线

ios - NSDecimalNumber notANumber 对于字母 'E' 不正确

ios - 设置后的实例变量 nil

iphone - CGFloat 作为属性