我是 iPhone 开发的新手。我现在已经做了几个 android 应用程序,所以我想我会在 iPhone 上试一试。
但是,我真的发现故事板导航是违反直觉的。我创建了一个基本的选项卡式应用程序,它有 2 个屏幕,两个屏幕都包含一个显示各种数据位的表格视图。当用户单击表格的单元格时,我希望它打开一个新屏幕。简单的?显然不是。
我尝试添加一个新的 viewController 并在我现有的 tableViews 之一中按住 ctrl 单击一个表格单元格,该 tableViews 从根选项卡式视图控制器链接,以将 seague 添加到新控制器。单击单元格在模拟器中无效。
我尝试将新控制器与自定义类链接,以查看这是否是我失败的地方,但即使我创建了一个继承自 UIViewController 的新 Objective-C 类,它也不会出现在下拉框中。
除非我误解了视图调用的层次结构应该如何工作?
任何帮助表示赞赏!
编辑:
好的,所以有了以下建议,我已经设法走得更远,但我还没有完全做到。我为每个选项卡视图选项添加了导航控制器。然后我 ctrl 单击单元格行以链接到我的新 webview 控制器,选择要推送的选择 seague 集。我 ctrl-clicked webview 到它的控制器,使其成为一个出口委托,并将以下代码添加到该行:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (_webViewController == nil)
{
self.webViewController = [[[RSSWebViewController alloc] initWithNibName:@"WebViewController" bundle:[NSBundle mainBundle]] autorelease];
}
RSSEntry *entry = [_allEntries objectAtIndex:indexPath.row];
_webViewController.entry = entry;
[self.navigationController pushViewController:_webViewController animated:YES];
}
我还补充说:
@property (retain, nonatomic) IBOutlet UIWebView *webView;
到新的视图控制器头文件。当我在模拟器中单击一行时,它会引发以下异常:
2013-03-23 17:21:17.241 RSS[1330:c07] *由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法在包中加载 NIB:'NSBundle 名称为'WebViewController'”。
感谢到目前为止的评论。:)