2011-02-09 7 views
0

xcode 3.2.5でiphoneアプリを開発しました。あなたが知っているように、このxcodeのバージョンは、4.2用のsdkしか付属していません。このアプリケーションをテストしている間、実行可能な実行可能ファイルをiPadシミュレータ3.2に設定しました。この実行ファイルを実行すると、完全に空白の(白い)アプリケーションのビューの1つがUINavigationControllerのナビゲーションバーに表示されます。ios4.2アプリをオンシミュレータで実行しても問題ありません。デバイスでNIBビューが空白の場合

この空白のビューは、NIBファイルからロードされた唯一のものであり、他の(作業中の)ビューはすべてプログラムによって生成されます。

ビルド設定で、IOSデプロイメントターゲットをIOS 3.2に設定しました。

問題が発生する理由はありますか?私の見解はかなりシンプルで、いくつかのボタン、ラベル、UIWebViewです。

編集:ビューはIBで作成されました。 FWIWビューにもいくつかの画像があります。

アップデート:同じ問題を抱えたデバイス(iPad 4.2 & iPhone 3.1)でこのアプリケーションを実行して以来、この特定のビューはすべて白く表示されます。

コメントに応じて; 私はファイルの所有者のクラスを私のView Controllerに設定し、UIScrollViewに 'dot'を接続してviewcontrollerのビューをルートビュー(この場合はUIScrollView)に設定します。

私はView Controllerのinitメソッドを持っていません。以下はviewdidloadメソッドです。

- (void)viewDidLoad{ 
[super viewDidLoad]; 

UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:nil]; 
self.navigationItem.rightBarButtonItem = addButton; 
self.navigationItem.title=[programme CAOCode]; 
[addButton release]; 



NSMutableString *subTitle=[NSMutableString stringWithString:[programme CAOCode]]; 
[subTitle appendString:@" "]; 
[subTitle appendString:[programme AwardType]]; 
[subTitle appendString:@" in"]; 

[subtitle setText:subTitle]; 
[maintitle setText:[programme Title]]; 



btnCurrentTab=aboutThisProgramme; // this is startup active tab 


[details loadHTMLString:[self GetOverViewHTML] baseURL:[NSURL fileURLWithPath: [[NSBundle mainBundle] bundlePath]]]; 


} 

最後に、これは(tableviewcontrollerから)問題のコントローラをインスタンス化するコードである

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

// Create and push a detail view controller. 
ProgrammeViewController *programmeViewController = [ProgrammeViewController alloc]; 
Programme *selectedProg = (Programme *)[[self fetchedResultsController] objectAtIndexPath:indexPath]; 

// Pass the selected course to the new view controller. 
programmeViewController.programme = selectedProg; 

[self.navigationController pushViewController:programmeViewController animated:YES]; 
[programmeViewController release]; 
} 
+0

Interface builderを使用しましたか? –

+0

iPhoneは大文字と小文字を区別しますが、Macは大文字と小文字を区別します。ファイル名を確認してください。 –

+0

いくつかのコードを投稿できますか?どのようにView Controllerをインスタンス化していますか?どのようにビュー階層に追加していますか? View ControllerのinitメソッドとviewDidLoadメソッドを投稿できますか? –

答えて

1

もしAからそれをロードする場合の問題は、ライン

ProgrammeViewController *programmeViewController = 
    [ProgrammeViewController alloc]; 

でありますNIBファイルのようなものにする必要があります

ProgrammeViewController *programmeViewController = 
    [[ProgrammeViewController alloc] initWithNibName:@"MyNibName" bundle:nil]; 

"MyNibName"は.xibファイル拡張子の付いていないペン先のファイル名である必要があります。 もちろん、nibファイルがビルドに含まれていることを確認してください。

+0

ビンゴ、それを修正!なぜそれがシミュレータをうまく働いたのだろうと思っているだけです。私は公式のサンプルアプリケーション "CoreDataBooks"からそのコードを借りました。私は当時私のために意味をなさない、今なぜ私は知っている! – Ken

+0

Cool :)本当にそれはサンプルアプリからのものでしたか?私は "init"呼び出しと対になっていない "alloc"呼び出しを見たことはないと思います。 Obj-Cの専門家でなければ、 "alloc"の後に常に "init"コールを続けるべきです。どのようにシミュレータで動作することができるか分からない... :) – ettore

関連する問題