-1

ナビゲーター コントローラーのチュートリアルを開始しようとしていますが、複数のナビゲーション コントローラーがあるチュートリアルが見つかりませんでした。

これまでのところ、次のコードがあります。最初のページは、UIViewController. 最初のボタンを押すと、ユーザーは顧客リスト ページに移動でき、顧客リスト ページUINavigationControllerのナビゲーション バーに [戻る] ボタンが正しく表示されます。

アプリのデリゲートには、次のコードがあります。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
        self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
        self.window.rootViewController = self.viewController;
        [self.window makeKeyAndVisible];
        return YES;
}

顧客リストの表示を担当するView Controllerでは、戻るボタンは次のメソッドを呼び出します。

- (void)backHome:(id)sender {       
    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    ViewController *viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];

    appDelegate.window.rootViewController =  viewController;

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

    // self.window.rootViewController = self.viewController;
    [appDelegate.window makeKeyAndVisible];       
}

しかし、それは機能しなくなりました。どうすればこれを機能させることができるかわかりません。

4

2 に答える 2

1

UINavigationController次のように、のrootViewControllerとしてを設定しますUIWindow

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
        self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
        UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
        self.window.rootViewController = navigationController;
        [self.window makeKeyAndVisible];
        return YES;
}

次に、次のように、戻るときにスタックにviewControllerをポップします。

-(void)backHome:(id)sender
{
    [self.navigationController popViewControllerAnimated:YES];
}
于 2012-08-12T08:05:20.960 に答える
0

iOS の基本を理解するには、本を購入して適切に学習することをお勧めします。つい最近、iOS に関する Big Nerd Ranch の本を手に入れましたが、とても役に立ちました。あなたの冒険を頑張ってください!

あなたの質問に答えるには、Markus が正しいと言っています。rootViewController が必要です。そこから、他のビューをその上にプッシュします (たとえば、ボタンが押されたとき)。メイン ビューに戻るには、その上にあるビューをポップします。

于 2012-08-12T11:00:09.360 に答える