2011-11-07 13 views
2

私は最初の普遍的なアプリケーションを作成しています。ペンとiPhoneバージョンがあるようにペン先を変換しました。iOS Universal App - iPadとiPhoneの異なるペン先にアクセスする

iPad版はResources-iPadフォルダにあり、「InfoViewController-iPad.xib」と呼ばれています。 iPhoneのメインフォルダのバージョンと呼ばれる「InfoViewController.xib」

これは、それが正常に動作し、iPhone上で実行すると、私は、関連XIBに

-(void) touchesBegan: (NSSet *) touches withEvent: (UIEvent *) event { 
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
    { 
     infoViewController = [[InfoViewController alloc] initWithNibName:@"Resources-iPad/InfoViewController-iPad" bundle:nil]; 
    } 
    else 
    { 
     infoViewController = [[InfoViewController alloc] initWithNibName:@"InfoViewController" bundle:nil]; 
    } 

    infoViewController.delegate = self; 
    infoViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 

    [self presentModalViewController:infoViewController animated:YES]; 

    [infoViewController release]; 

} 

を表示するには、次のアクションを持っているが、それは時に実行をクラッシュiPadで。 どんな助力も本当に感謝します

+0

フォルダ名の回答は正しいですが、実際にどこがクラッシュしていたのかを把握していて、infoViewControllerがnilであることに気づいたはずです。その後、それを理解しようとしました。 –

答えて

1

iPad版のペン先名にフォルダ名を入れる必要はありません。iPhone版とは異なる名前が付いている限り、フォルダ名を見つけることができます。

initWithNibNameからフォルダを削除できない場合は、質問を編集し、バックトレースの結果をコンソールから投稿してください。

+0

あなたはフォルダ名が必要ではないということは間違いありませんでした。しかし何らかの理由で私はInfoViewController-iPadをプロジェクト(参照のみ)から削除し、それを元に戻す必要がありました。 – CarlG

0

iPadの名前に接頭辞Resources-iPad/は不要です。 iOSはバンドル内のリソースを見つける方法を知っています。 Xcodeに表示されるフォルダ階層は、単にファイルを整理し、開発者の利益を得るためのものです。

関連する問題