1

私のプログラムには6つのView Controllerがあります.(ストーリーボードに)1,2,3,4,5,6を定義しましょう。

1が私のメインビューです。

私はこのようにナビゲートしたいです(下の画像)。それは可能ですか?このナビゲーションを行うアイデアをください。

ここに画像の説明を入力

4

3 に答える 3

1

最初にナビゲーションコントローラーオブジェクトを作成します

UINavigationController *navCtrl = [[UINavigationController alloc]initWithRootViewController:rootViewController];
self.window.rootViewController = navCtrl;

1->2,1->3,1->6 などに移動する場合は、次のビューコントローラー用のオブジェクトを作成し、ナビゲーション スタックにプッシュします。

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

以前のView Controllerに戻るために追加の作業を行う必要はありません。デフォルトの戻るボタンで戻ることができます。

ルート ビュー コントローラーに戻る必要がある場合は、次のようにします。

[self.navigationController popToRootViewControllerAnimated:YES]; 

特定のView Controllerに戻りたい場合は、これを使用してください

[self.navigationController popToViewController:viewController animated:YES];
于 2013-11-05T11:27:09.273 に答える
1

はい、これを実装できます。これは、NavigationController を使用した iOS での簡単なナビゲーションです。6 つの viewControllers 1、2、3、4、5、6 があります。

まず、NavigationController を作成し、ViewController 1 (つまり、ルート ビュー コントローラー) で初期化します。

これで、navigationController は、プッシュされたすべてのビュー コントローラーを含むスタックのように動作します。NavigationController はビュー コントローラのプッシュおよびポップのみです。

したがって、ナビゲーションを行うたびに、最初にviewControllerがnavigationControllerスタック内にあるかどうかを確認してください。すでにスタックにある場合はそのコントローラーにポップし、そうでない場合は同じView Controllerをプッシュします。この使用については、次のとおりです。

ViewController3の場合

-(void)popToSelectedViewController
{
    NSArray *vc=[self.navigationController viewControllers];

    ViewController3 *vc3=nil;

    for (int i=0; i<[vc count]; i++)
    {
        UIViewController *tempVC=[vc objectAtIndex:i];
        if([tempVC isKindOfClass:[ViewController3 class]])
        {
            vc=[vc objectAtIndex:i];
            break;
        }
    }

   if(vc3)
    {
       //If exists inside stack the pop
         [self.navigationController popToViewController:vc3 animated:YES];
    }
   else
   {
        //If not exists inside stack push ViewController3
        ViewController3 *vc3New= [[ViewController3 alloc]initWithNibName:@"ViewController3" bundle:nil];
        [self.navigationController pushViewController:vc3New animated:YES];
         [vc3New release];
   }


}

navigationController で ur ViewController1 を初期化する場合:

ストーリーボードを使用する場合は、UINavigationController を使用 して初期ビューコントローラー (つまり、viewController3) を埋め込みます。このため:

ステップ 1: ストーリーボードを開き、ur initialViewController (つまり、viewController3) を選択します。

ステップ 2: メニューのエディターに移動 -> 埋め込みを選択 -> UINavigationController を選択します。これにより、navigationController が作成され、viewController3 を rootViewController として初期化されます。

.h で vc3 (ViewController3) と applicationNavigationController (UINavigationController) のストーリーボード make プロパティを使用しない場合

そして.mで:

appDelegate でメソッド「application... didFinishedLaunching....」を取得し、次のように記述します。

self.vc3=[[ViewController3 alloc]initWithNibName:@"ViewController3" bundle:nil];
    self.applicationNavigationController=[[UINavigationController alloc] initWithRootViewController:self.vc3];
  self.window.rootViewController=self.applicationNavigationController;
[self.window makeKeyAndVisible];
于 2013-11-05T11:27:36.593 に答える
0

使用しますUINavigationController。円形ではありません。積み重ねられたアプローチと見なすことができます。それがナビゲーション コントローラーの機能です。

あなたのために読む必要があります

于 2013-11-05T11:19:38.397 に答える