0

iOS iPad アプリには次の構造があります。

  • RootViewController: ログイン
    • @property UITabbar *main (ログイン成功後にロードされます);

ウィンドウとログインの2appDelegateつのプロパティがあります。最初のものに をロードし、UIWindow他のにロードしLoginViewController (UIViewController)ます。Login を RootViewController として設定します。

MainControllerログイン時に、 (extends )と入力された「main」という名前のプロパティがありますUITabbarController

ログインに成功したら、上記のコードを使用してメインをロードします。

[_main setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentViewController:_main animated:YES completion:nil];

MainController は viewDidLoad メソッドでロードされました。私には2つのポイントがあります:

MainController のデリゲートとして自分自身を設定する必要がありますか?

これは私の MainController viewDidLoad メソッドの始まりです:

[super viewDidLoad];
[self setDelegate:self];
NSLog(@"Parent view controller is: %@", [self parentViewController]);
NSLog(@"Presented view controller is: %@", [self presentedViewController]);
NSLog(@"Presenting view controller is: %@", [self presentingViewController]);

これのログは次のとおりです。

2013-01-20 21:23:53.180 MyApp[6304:11303] Parent view controller is: (null)
2013-01-20 21:23:53.181 MyApp[6304:11303] Presented view controller is: (null)
2013-01-20 21:23:53.182 MyApp[6304:11303] Presenting view controller is: (null)

viewController を提示する正しい方法を使用していますか? または、ボタンをクリックするかログインした後にビューを表示するには? 何が欠けている?ビュー階層を正しく使用していますか?

表示されるコントローラを含むプロパティが必要ですか?

今からよろしくお願いします!

4

1 に答える 1

0

アプリデリゲートと他のコントローラーのコードを自分で作成しましたか?その場合、残りのコードを投稿していないので、私が言えるのは、すべてのViewControllerを初期化することだけです。

YourViewControllerNameHere = [[ViewControllerType alloc] init];

または、nib / xib/storyboardファイルがある場合

    YourViewControllerNameHere = [[ViewControllerType alloc] initWithNibName:youInterfaceFileNameHereWithoutFileType bundle:nil];
于 2013-01-21T04:27:42.530 に答える