0

ユニバーサル アプリの作成に問題があります... アプリケーション デリゲートで、iPad と iPhone のメイン ナビゲーションを設定しました。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
 window = [[UIWindow alloc] initWithFrame:[ [UIScreen mainScreen] bounds]];
 if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
// The device is an iPad running iPhone 3.2 or later.
  [self putSplitView];
 } else {
  [self putTabBar];
 }
 [window makeKeyAndVisible]; 
 return YES;
}

- (void)putSplitView {
 RootiPadViewController *rootiPadViewController = [[RootiPadViewController alloc] init];
 UISplitViewController *splitController = [[UISplitViewController alloc] init];
 splitController.viewControllers = [NSArray 
        arrayWithObjects:rootiPadViewController.seccionesView,
                         rootiPadViewController.noticiasView, 
                         nil];
    [window addSubview:splitController.view];
}

- (void)putTabBar {
 TabBarController *tabBar = [[TabBarController alloc] init];
 [window addSubview:tabBar.view];
}

RootiPadViewController は、データの読み込みと splitView のペインの生成を担当しているため、その初期化では modalView とローダーが次のように組み込まれます。

@implementation RootiPadViewController

@synthesize seccionesView, noticiasView;

- (id)init {
 if ((self = [super init])) {
  SeccionesVC_iPad *sec = [[SeccionesVC_iPad alloc] init];
  NoticiasVC_iPad *not = [[NoticiasVC_iPad alloc] init];
  self.noticiasView = not;
  self.seccionesView = sec;
  Init *initVC = [[Init alloc] init];
  [self presentModalViewController:initVC animated:YES];
 }
 return self;
}

コードは警告なしでコンパイルされますが、何らかの理由で initVC の loadView メソッドが呼び出されず、モーダル ビューが表示されません...

なぜこれが起こっているのでしょうか?ご協力いただきありがとうございます!

アントニオ

4

2 に答える 2

1

「init」メソッドではなく、RootViewController の「ViewDidLoad」メソッドからモーダル ViewController を提示する必要があるかもしれません...ビュー階層がすぐに作成されるかどうかはわかりません

于 2010-07-06T16:35:53.650 に答える