我正在做一些iPhone开发,我正在使用Storyboard来模拟和加快我的开发。
我不是来自传统的做事方式,我必须这样做吗?
无论如何,我有故事板,
TableViewController
NavigationController->ViewController->TabViewController [
AnotherViewController
我想添加一个附加到TableViewController的新ViewController,这样当我点击行项时,它会在另一个视图中显示它;但是;
所以我尝试了传统的做事方式
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
我把ff:
CViewController *controller = [[CViewController alloc] initWithNibName:????? bundle:nil];
[self.navigationController pushViewController:controller animated:YES];
[controller release];
我试图在属性检查器上为Controller提供一个标识符但是不起作用并且给我以下崩溃堆栈:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/paulvincentong/Library/Application Support/iPhone Simulator/5.1/Applications/A1C369F8-9EAD-4794-8861-945C73F7FE0B/SyncProto.app> (loaded)' with name 'ControllerViewName'
如果我删除了标识符,我将获得no NibName异常;
我该怎么办?我知道它应该和我能够达到四个级别的相关控制器一样,在我的脑后可能会有一些令我困惑的事情......
TIA,
答案 0 :(得分:0)
在你的cellForRow中尝试这个
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath
*)indexPath{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard"
bundle:nil];
ViewCont * view = (ViewCont *) [storyboard
instantiateViewControllerWithIdentifier:@"view"];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
[self view animated:YES completion:nil];
}
确保您还在项目经理中设置了故事板。
答案 1 :(得分:0)
否则,在故事板中,您不使用您所说的推送方法。您使用performSegueWithIdentifier。故事板是关于segues的。您可以直接删除或使用目标操作。
故事板的力量再次以其视觉表现形式出现。使用IB。
否则你也可以考虑委托(ESP for ipad)。
答案 2 :(得分:0)
玩完之后......我找到了适合我问题的答案;
我的问题似乎是
的原因解决方案因案例而异;对我来说,我试着做ff:
方法1 :(使用“instantiateViewControllerWithIdentifier”)带有一个segue箭头
所以源代码看起来像;
ViewController *view = [self.storyboard instantiateViewControllerWithIdentifier:@"CustomViewName"];
[self.navigationController pushViewController:view animated:YES];
方法2 :(使用“instantiateViewControllerWithIdentifier”)没有segue箭头
然而,使用这种方法会破坏故事板的一致性,为什么要使用它? (仍然是我必须要找到的东西),当你开始寻找从未出现的segue箭头时,它并不明显,尽管它有效。
此代码无法正常工作,因为我没有带名称的笔尖????,
CViewController *controller = [[CViewController alloc] initWithNibName:????? bundle:nil];
[self.navigationController pushViewController:controller animated:YES];
因为它在故事板上并且假设所有内容都是使用故事板完成的,所以有时间忘记nibName,因为它永远不会发生..
希望这个想法有所帮助...
学习是一个彻底的过程,但它是一件非常有趣的事情......
感谢。