Swift:从另一个选项卡中调用函数

时间:2017-08-26 12:10:22

标签: ios swift uitabbarcontroller

我想调用函数

 func setupChatLogForUser(user: ChatPartner){
    let layout = UICollectionViewFlowLayout()
    let chatLog = ChatHistory(collectionViewLayout: layout)
    chatLog.user = user
    navigationController?.pushViewController(chatLog, animated: true)
}

来自我的TabBarController的不同标签。

我正在更改标签作为第一步,但后来不知道如何使用特定用户调用该函数,因为我使用navigationController来推送视图控制器......

感谢您的帮助!

编辑:

var chatsViewController:HomeScreen?

func chat(){
    print("Chat clicked")
    guard let chatFriends = self.friend else {return}
    print(chatFriends)

    self.tabBarController?.selectedIndex = 0
    self.chatsViewController?.setupChatLogForUser(user: chatFriends)
}

1 个答案:

答案 0 :(得分:1)

您未在此处初始化chatsViewController HomeScreen的{​​{1}}实例,根据您发布的代码,它看起来是零。您可以在不全局创建实例的情况下调用此方法

func chat(){
    print("Chat clicked")
    guard let chatFriends = self.friend else {return}
    print(chatFriends)

    self.tabBarController?.selectedIndex = 0
    HomeScreen().setupChatLogForUser(user: chatFriends)
}

希望它有所帮助。