2017-07-18 10 views
0

これはダミー質問ですが、何が問題なのか分かりません。私は2つのビューコントローラーを持っています。そのうちの1つはポップアップとして開きます。私がポップアップで閉じるボタンをクリックすると、私は緊急コールを呼び出すが、親ビューコントローラではviewdidappear関数が呼び出されていない。 私はこの記事から助けを得ました。 Unwound by a child子ビューからの返信時にViewdidappearが呼び出されていない

override func viewDidAppear(_ animated: Bool) 
{ 
    // Handle controller being exposed from push/present or pop/dismiss 
    if (self.isMovingToParentViewController || self.isBeingPresented){ 
     // Controller is being pushed on or presented. 
     print("hello") 
    } 
    else{ 
     // Controller is being shown as result of pop/dismiss/unwind. 
     print("hello2") 
    } 
} 
+1

はおそらく無関係しかし、あなたは 'super.viewDidAppearを呼び出すことを確認してください(アニメ)。 – rmaddy

+0

私はすでにそれをやっています:( –

+0

まず最初に、あなたはrmaddyが提案したことをしていないのですが、第二に、その行にブレークポイントを入れて、アプリケーションを停止したかどうか教えてください。 –

答えて

0

私はデリゲートとプロトコルで解決しました。

protocol TableViewControllerDelegate { 
    func controller(_ controller: TableViewController, didAddItem: String) 
} 
class TableViewController: UIViewController, UITableViewDelegate,UITableViewDataSource { 

    var delegate: TableViewControllerDelegate? 
    ... 

firstviewcontrollerでsecondviewcontroller

delegate?.controller(self, didAddItem: "hello") 

のセグエ一部で:tableviewcontrollerあるsecondviewcontrollerで

class MainViewController: UIViewController, TableViewControllerDelegate{ 

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     if segue.identifier == "Segue" { 
      let destination = segue.destination as? TableViewController 
      if let viewController = destination 
      { 
       viewController.delegate = self as TableViewControllerDelegate 
      } 
     } 
     // Get the new view controller using segue.destinationViewController. 
     // Pass the selected object to the new view controller. 
    } 
    // MARK: Add Item View Controller Delegate Methods 

    func controller(_ controller: TableViewController, didAddItem: String) { 
     // Update Data Source 

     // Reload Table View 
     mainStackView.isHidden = false 
     // Dismiss Add Item View Controller 
     dismiss(animated: true) 
    } 
} 
関連する問題