私のアプリでは、「メイン」ViewController
があります。そのviewDidAppear
の体内でのアプリの起動時に、私はUserDefaults boolean
の値を取得します。これは、モーダルAuthViewController
を起動UIViewControllerメソッドをUIViewControllerから深く入れ子にして呼び出す
self.performSegue(withIdentifier:"loginView", sender:self)
、含まれているのViewController:ユーザーがログインしていない場合、私は別のviewcontroller
モーダルこの方法を提示します"Container View"、UIPageViewController
(AuthPageViewController
)を含むAuthViewControllerの領域。
この最後のページには、2つの「ページ」:LoginViewController
とRegisterViewController
があります。
LoginViewController
ユーザーをログインするために使用されます。ユーザーは、私がメインViewController
上の機能(それが何をするかに関係なく)を呼び出したいに記録された後。
したがって、要約すると、私はLoginViewController
にあり、ViewController
というメソッドを呼び出したいと思います。
ソリューションをしようとしている間、私は、次を発見した:
LoginViewController
はViewControllerをから直接開かれていなかったので、私はpresentingViewController
への参照を取得することはできません。さらに、AuthViewController
はpresent(_:animated:completion:)
で開始されていませんでしたが、前に述べたようにself.performSegue
で開始されました。ViewController
をLoginViewController
からインスタンス化し、メソッドを呼び出すことは有効ですが、それは良い考えではありません。NSNotification
はチャームのように機能します。- このアプリケーションのコンテストでは、デリゲートが機能していないか、実装について何か不足しているようです。
LoginViewControllerからViewControllerメソッドを呼び出す方法を理解できますか?コード例は非常によく受け取りましたが、私は助言に感謝します。
デリゲートから
goToContent
を呼び出すことができます'ViewController'から 'LoginViewController'を呼び出すだけで、それ以外の場合は通知を使います。同時に複数のメッセージを閉じると、unwindは動作します。 – Tj3n