斯威夫特:从不同的标签

斯威夫特:从不同的标签

问题描述:

内呼叫功能我想从我的TabBarController的不同选项卡内调用函数斯威夫特:从不同的标签

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

I'm改变标签的第一步,但鸵鸟政策知道如何使用navigationController推视图控制器以及事后打电话与特定用户的功能I'm ...

谢谢你的帮助!

编辑:

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

从其他类中获取该TabBar类的实例并调用该方法。 – TheValyreanGroup

+0

试过了,没有工作。当在同一个选项卡中调用该函数时,此工作正常。但是,从不同的标签内呼叫时,它似乎无法正常工作。 – ktm125

+0

请显示您试图称呼它的内容。 – TheValyreanGroup

你没有初始化的chatsViewControllerHomeScreen这里的实例和看起来像它的无按你的代码发布。你可以在没有全局创建实例的情况下调用这样的方法

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

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

希望它有帮助。

+0

感谢您的回答!它不工作,虽然... – ktm125

+0

调试它,并检查setupchatlogforuser方法是否被调用 –

+0

是的,它确实被称为 – ktm125