0

2 つの主要なビューを持つアプリケーションを作成しています。1 つ目はメイン画面で、2 つ目は UITableViewController で、ユーザーの履歴を表示するための配列が設定されています。TableView は正常にロードされ、正常に読み込まれます。問題は、メインの View Controller をバックアップして開くときです。私が使用する場合:

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

    ViewController *myView;

    myView = [[ViewController alloc] initWithNibName:nil bundle:nil];

    [self presentModalViewController:myView animated:YES];

}

ViewController は表示されますが、画面は真っ暗です。

私が使用する場合:

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

    ViewController *myView;

    myView = [[ViewController alloc] initWithNibName:@"ViewController" bundle:[NSBundle mainBundle]];

    [self presentModalViewController:myView animated:YES];

}

アプリケーションがクラッシュし、次のように表示されます。

* Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle (loaded)' with name 'ViewController'' * First throw call stack: (0x30f0a88f 0x35fdb259 0x30f0a789 0x30f0a7ab 0x318a434b 0x318123c7 0x316efc59 0x31665c17 0x31670267 0x316701d5 0x3170f59b 0x3170e367 0x317696a7 0x36dc1 0x316de93d 0x31758627 0x3094d933 0x30edea33 0x30ede699 0x30edd26f 0x30e604a5 0x30e6036d 0x3129f439 0x3165acd5 0x3465b 0x34600) terminate called throwing an exception(lldb)

私は iPhone と iPad のアプリケーション プログラミングにまったく慣れていませんが、これはかなり簡単な作業だと思いました。以前に他のアプリケーションでビューを切り替えたことがありますが、これは機能していません。助けてください!!!

4

2 に答える 2

0

エラーがViewControllerと呼ばれるnibファイルを持っていないことを示しているので、ViewControllerと呼ばれるnibファイルがないかプロジェクトをチェックしてください

于 2012-07-03T14:39:36.633 に答える
0

3つのこと:

1) このような単純なアプリケーションには、新しい xcode とストーリーボードを使用することを本当に検討してください (ストーリーボードには賛否両論ありますが、初心者の場合はストーリーボードを使用することをお勧めします)。

フォローできる優れたドキュメントは次のとおりです。http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/SecondiOSAppTutorial/Introduction/Introduction.html

2) あなたのコード:

myView = [[ViewController alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:myView animated:YES];

これは、非常に複雑なことをしていない限り (そして、iPhone 開発に慣れていないと言う場合)、あまり意味がありません。これは、カスタム UIViewController を完全にプログラムで作成していることを示唆しています。

この次のコードはより理にかなっていますが、エラーは、プロジェクトで ViewController NIB ファイル (Interface Builder で編集する ViewController.xib) を作成していないことを示しています。

myView = [[ViewController alloc] initWithNibName:@"ViewController" bundle:[NSBundle mainBundle]];
[self presentModalViewController:myView animated:YES];

3) あなたはいくつかの ViewController を作成したと言っていますが、それらの間をどのように移行しますか? 通常、UINavigationController または UITabBarController を使用して遷移を処理します (これも、より複雑なことをしている場合を除きます)。これらには、ビュー間の切り替えを可能にするメカニズムが含まれます。

最初のポイントに戻ると、ストーリーボードを使用すると、これらの複数のビューをより簡単に管理できます。

于 2012-07-03T15:02:32.640 に答える