UITabBarController - 从一个选项卡的导航堆栈转换到另一个选项卡导航堆栈的视图控制器

时间:2015-07-02 20:05:11

标签: ios swift uitabbarcontroller

iOS新手开发者。我正在使用UITabBarController在Swift中创建一个简单的选项卡式聊天应用程序。为简单起见,我们假设应用程序只有两个选项卡,“联系人”和“聊天”。两个选项卡中的每一个都有一个导航控制器。

“聊天”导航堆栈以名为“ChatsTableViewController”的UITableViewController开头,其中列出了用户的聊天记录。当用户选择聊天时,应用程序会切换到MessagesViewController,显示所选聊天的消息。

“联系人”导航堆栈包含一个UITableViewController,用于列出用户的联系人。在选择联系人时,以模态方式呈现另一个视图控制器,询问用户是否希望开始与所选联系人聊天,并向他们提供取消选项。如果用户选择开始聊天,我想从这个模态视图控制器转换到“聊天”选项卡的MessagesViewController,传递显示聊天所需的信息(我在模态视图控制器中已准备就绪)

当MessagesViewController加载时,无论我们是通过从“聊天”选项卡中选择聊天还是通过“联系人”选项卡创建新聊天来获取它,它都应该在顶部有一个导航栏,带有“返回“将用户带到ChatsTableViewController的按钮。

我做了很多搜索,但没有找到任何符合我需要的解决方案。任何建议将不胜感激!以下是我要找的内容摘要。

  1. 执行从一个选项卡的导航堆栈中的视图控制器到另一个选项卡的导航堆栈的视图控制器(在我的情况下不是根视图控制器)的转换的标准方法,同时传递相关信息以在目标视图中显示控制器。
  2. 我转换到的视图控制器应该有一个带有后退按钮的导航栏,该后退按钮将用户带到其导航堆栈中的前一个视图控制器,就像他们从选项卡的正常导航流程中访问它一样。
  3. 编辑:我发现您可以使用self.tabBarController?.selectedIndex = index_of_tab_to_switch_to以编程方式轻松切换标签,但是,这会将我带到标签的第一个视图,我仍然不确定我是怎么做的可以传递数据。有关如何进行的任何想法?

0 个答案:

没有答案