2017-08-06 1 views
1
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    dismiss(animated: true) { 
     let viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ChatPage") 
     self.present(viewController, animated: true, completion: nil) 

     print("111") 

    } 
} 

Störung zu erhalten, während eines View-Controller zu entlassen und zu einem anderen Viewcontroller von completionblock bewegen
mir bitte helfen, dieses Problem zu lösen, genannt I-Stelle, aber immer noch ich hier stecken geblieben.MessagePeopleTableViewController: 0x7fb47dd44f80> deren Ansicht ist nicht in der Fensterhierarchie

+0

siehe zum Beispiel https://stackoverflow.com/questions/26022756/warning-attempt-to-present-on-who-view-is-not-in-the-window-hierarchy-s –

Antwort

1

Es scheint, dass Sie "ChatPage" Controller von aktuellen Controller, der bereits entlassen wird präsentieren. Ich denke, das ist der Grund.

Wenn Ihr Stromregler Modal ist, können Sie so etwas wie dies versuchen:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
      dismiss(animated: true) { 

     let viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ChatPage")  

     //get access to presenting parent controller 
     self.presentingViewController.present(viewController, animated: true, completion: nil) 

     print("111") 

    } 
} 

oder Eltern Controller-Instanz in der aktuellen Controller speichern, aber das ist nicht gut Code tatsächlich.

Wenn dies nicht funktioniert, ist die andere Möglichkeit, einen Delegaten zu verwenden, der eine Methode im übergeordneten Controller aufrufen wird, um etwas darzustellen. Das bedeutet, dass Sie self.present (viewController, animiert: true, completion: nil) vom Controller aus aufrufen sollten, der einen neuen Controller darstellen sollte (in Ihrem Fall ist es ein übergeordneter Controller), aber nicht vom Controller, der abgewiesen wird

Verwandte Themen