【问题标题】:How to share the ViewController class in TabBar with NavigationController?如何与 NavigationController 共享 TabBar 中的 ViewController 类?
【发布时间】:2013-05-13 04:00:02
【问题描述】:

由于我是 iPhone 开发的新手,我需要一些建议。
我的应用有两个标签

  • 第一个选项卡显示具有 lat/long 和 url 的项目表。 当我在表格中选择一个项目时,然后在地图视图中使用标注显示其位置。 在 mapview 中,选择标注可以在 webview 中显示其网站。
  • 第二个选项卡一次显示位于地图视图上的所有项目。 在 mapview 中,选择一个标注并在 webview 中显示其网站。

我的故事板布局是,

NavigationController -> tabBarContoller
                        firstTab) tableView ->(segue"showDetail")->(*1 leads to mapView of secondTab) 
                        secondTab) mapView ->(segue"showWeb")-> webView


每个选项卡的 mapView 和 webView 共享同一个类。在情节提要上,第一个选项卡的 tableViewController 的 segue 导致第二个选项卡的 mapViewController。

第一个选项卡可以在 mapView 上显示注释,然后在 webView 上显示网站。第二个选项卡在 mapView 上显示注释,但是当我推送一个注释的标注时,抛出异常

'找不到用于 segue 'showWeb' 的导航控制器。推 仅当源控制器由 UINavigationController 的实例。'

当然我知道我可以为每个选项卡使用 mapview 和 webview 的两种不同实现,但我想集体实现以考虑维护。

我认为 NavigationController 在此情节提要布局的第二个选项卡上不起作用。

请有人告诉我该怎么做。谢谢:)

【问题讨论】:

    标签: ios objective-c uinavigationcontroller storyboard uitabbarcontroller


    【解决方案1】:

    您的标签栏控制器应该是第一个控制器,并且表格视图和地图视图控制器都应该嵌入到它们自己的导航控制器中。

    【讨论】:

    • @kinamin,就控制器订单而言是的。但是,要从 tableView 转到 mapView,您需要切换到选项卡 2,而不是使用推送。您可以在代码中使用 self.tabBarController.selectedIndex = 1;
    • 谢谢 rdelmar。你的意思是这样吗? tabbar -> navigation -> tableView -> (leads to mapView)`-> 导航-> mapView-> webView`
    • 对待tab2中包含的mapView和webView对吗?非常感谢。我试试看。
    猜你喜欢
    • 1970-01-01
    • 2010-12-14
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    相关资源
    最近更新 更多