1

TabBarControllerビューが読み込まれる前に、最初のログイン/登録画面を起動しようとしています。ModalViewControllerをFirstViewに配置するのが良い方法であることを読みました。これは機能しますが、ModalViewControllerにナビゲーションコントロールを追加しようとしています。次の問題が発生しています。

1-エラー:タイプ'AppDelegate'のオブジェクトにプロパティ'navigationController'が見つかりません

2-警告:互換性のないタイプ「id」の式で「AppDelegate*」を初期化しています

これが私のModalViewControllerのコードです:

-(IBAction)signUpButtonTapped {
// i need to get the control for main navigation controller
AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
[appDelegate.navigationController popToRootViewControllerAnimated:NO];
// create object from app main view to push it
SignUpViewController *signUpViewController = [[SignUpViewController alloc] initWithNibName:@"SignUpViewController" bundle:nil];
[AppDelegate.navigationController pushViewController:signUpViewController animated:YES]; }

誰かアイデアはありますか?本当にありがとう!

4

4 に答える 4

2

コードには 2 つの問題があります

1) クラス名で OBJECT にアクセスします。それはappDelegate.navでなければなりません... (a1つのエラーを解決するために小さい)

[appDelegate.navigationController pushViewController:signUpViewController animated:YES];

2) 割り当てをキャストするタイプ (2 警告を解決するため)

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];

したがって、完全な作業コードは次のようにする必要があります

-(IBAction)signUpButtonTapped {
  // i need to get the control for main navigation controller
  AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];
  [appDelegate.navigationController popToRootViewControllerAnimated:NO];
  // create object from app main view to push it
  SignUpViewController *signUpViewController = [[SignUpViewController alloc] initWithNibName:@"SignUpViewController" bundle:nil];
  [appDelegate.navigationController pushViewController:signUpViewController animated:YES]; 
}
于 2012-08-22T06:42:32.137 に答える
0

コードでこの行を変更します

AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];

なので

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

そして今すぐ試してください

于 2012-08-22T06:36:11.933 に答える
0

AppDelegate インスタンスの宣言は次のようになります。

 AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication]delegate];

これを変更すると、準備完了です。

于 2012-08-22T06:36:42.710 に答える
0

1. appDelegate に というUINavigationControllerプロパティがあることを確認しますnavigationController

2. コードの 2 行目: AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];

3. コードの最後の行: [appDelegate.navigat....
NOT:
[AppDelegate.navigatio....

于 2012-08-22T06:46:12.890 に答える