【发布时间】:2013-03-13 09:47:28
【问题描述】:
我是 iPhone 开发的新手。我现在已经做了几个安卓应用,所以想试试 iPhone。
但是,我真的发现故事板导航是违反直觉的。我创建了一个基本的选项卡式应用程序,它有 2 个屏幕,两个屏幕都包含一个显示各种数据位的表格视图。当用户单击表格的单元格时,我希望它打开一个新屏幕。简单的?显然不是。
我尝试添加一个新的 viewController 并按住 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''。
感谢到目前为止的 cmets 伙计们。 :)
【问题讨论】:
-
所以,1) 这与 OS X 无关(UI 前缀的类是 iOS,NS 前缀的类(大部分)是 OS X),2) Xcode 是 IDE,而不是语言.
-
抱歉,如果我标记错了!
-
你应该发布你的
didSSelectRowAtIndepxPath方法。 -
嗨,迈克,我没有。这是我的问题吗?
-
@codafi 在这种情况下我会说 Xcode 是一个有效的标签 - 你还能在哪里编辑故事板?问题是关于在 Xcode 中编辑故事板 - 等待它 - Xcode,以及其中的界面存在问题。
标签: iphone ios storyboard