dismissModalViewControllerAnimated:
メッセージを送信する必要があるかどうかわかりません。ログインViewControllerの上に別のViewControllerをモーダルで表示していますか?
とにかく、ストーリーボードでView Controllerを構成した場合、とを使用してViewControllerを作成することはできませalloc
んinit
。ストーリーボードに作成を依頼する必要があります。これを行うにはいくつかの方法があります。
一方通行
ストーリーボードを作成する1つの方法は、ストーリーボードにViewController2
プッシュセグエを作成することです。
- ストーリーボードを開きます。
- Controlキーを押しながらログインビューコントローラからにドラッグします
ViewController2
。
- 「プッシュ」セグエタイプを選択します。
- セグエをクリックします。
- 「表示」>「ユーティリティ」>「属性インスペクターの表示」を選択します。
- 属性インスペクター(ウィンドウの右側)で、セグエ識別子を「didLogIn」に設定します。
セグエを実行するには、次のようにします。
- (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user {
[self dismissModalViewControllerAnimated:YES];
[self performSegueWithIdentifier:@"didLogIn" sender:self];
}
別の方法
ストーリーボードを作成するもう1つの方法はViewController2
、ストーリーボードIDを指定し、ストーリーボードにIDでViewControllerをインスタンス化するように依頼することです。次に、ViewControllerをプッシュできます。
ViewController2
ストーリーボードに作成を依頼する前に、ストーリーボード内のインスタンスに「ストーリーボードID」を指定する必要があります。
- ストーリーボードを開きます。
- インスタンスを選択し
ViewController2
ます。
- 「表示」>「ユーティリティ」>「IDインスペクターの表示」を選択します。
- Identity Inspector(ウィンドウの右側)に「viewController2」と入力します。ケースは重要です!
次に、コードでストーリーボードにインスタンス化を依頼しますviewController2
。
- (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user {
[self dismissModalViewControllerAnimated:YES]; // Should this be here?
ViewController2 *viewController = [[[ViewController2 alloc] init] autorelease];
[self.navigationController pushViewController:viewController animated:YES];
}