0

提示されたモーダル ビューからナビゲーション メソッドを呼び出すときに問題が発生しました。私はHomeViewController、loadViewController、modalViewControllerの3つのView Controllerを持っています。

ボタンを押すと HomeViewController から moda ビューとして表示される modalViewController。実際に必要なのは、表示された modalViewController からボタンを押すと、モーダル ビューが閉じられ、HomeViewController が loadViewController に移動する必要があることです。私のコードでは機能しません。

HomeViewController.m

  - (IBAction)shortCutButtonPressed:(id)sender {

         ShortCutViewController *viewController=[[ShortCutViewController alloc]initWithNibName:nil bundle:nil];

         [self.navigationController presentModalViewController:viewController animated:YES];

         [viewController release];
      }


   -(void)loadViewControllerLoad
     {
         loadViewController *loadView=[[loadViewController alloc]initWithNibName:nil bundle:nil];

         [self.navigationController pushViewController:loadView animated:YES];

         [loadView release];

     }

modalViewController.m

//モーダル ビュー コントローラーは、HomeViewController から関数 loadViewControllerLoad を呼び出して、homeview を loadView に移動します。関数呼び出しは正しく到達しますが、ビューは loadView に移動しません

    - (IBAction)HomeButtonPressed:(id)sender {

          homeView=[[HomeViewController alloc]initWithNibName:nil bundle:nil];

          [homeView loadViewControllerLoad];

          [[self presentingViewController] dismissModalViewControllerAnimated:YES];

          [homeView release];

       }

関数呼び出しは HomeViewController に到達しますが、ビューは LoadView に移動しませんか?

4

1 に答える 1

0

なるほど...あなたの実装は正しくありません.homeViewControllerオブジェクトをmodalViewController.mに割り当てている場合、loadViewControllerLoadメソッドを呼び出すと、self.navigationControllerとHomeViewControllerの他のすべてのプロパティがnilになります...だから、新しいものを作成しないでくださいHomeViewController のオブジェクト。他の方法でオブジェクトを取得します.それを渡すか、プロパティを使用して modalViewController から HomeViewController オブジェクトを取得し、メソッド「loadViewControllerLoad」を呼び出します

ビューを nil に設定する代わりに、.nib ファイル名を使用してビューを初期化します。

ShortCutViewController *viewController=[[ShortCutViewController alloc]initWithNibName:@"Your .nib name" bundle:nil];

例:

ShortCutViewController *viewController=[[ShortCutViewController alloc]initWithNibName:@"ShortCutViewController" bundle:nil];

これを loadViewController と HomeViewController にも適用してください...

于 2012-07-11T06:03:47.573 に答える