0

我正在编写一个有两个主要视图的应用程序。第一个是主屏幕,第二个是 UITableViewController 并填充了一个数组以显示用户的历史记录。TableView 加载良好并且填充良好,问题是当我去打开主视图控制器备份时。如果我使用:

    - (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

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 回答
0

由于错误表明您没有名为 ViewController 的 nib 文件,请检查您的项目中是否有名为 ViewController 的 nib 文件

于 2012-07-03T14:39:36.633 回答