从另一个故事板实例化视图控制器,从而获得符合键值编码的错误

时间:2014-05-12 11:08:58

标签: ios objective-c storyboard uitableview

我正在尝试将另一个UITableViewController的{​​{1}}子类添加到当前on作为标签栏视图控制器之一。

我正在使用以下代码,该代码适用于其他视图控制器。

storyboard

这给了我以下错误:

  

* 由于未捕获的异常而终止应用   ' NSUnknownKeyException',原因:' [   setValue:forUndefinedKey:]:此类不是键值   符合编码标准的关键fitnessStatusView。'

fitnessStatusView是其中一个静态单元的子视图的出口。

如果我删除了与该子视图的插座连接,则问题就会消失。

是否无法以这种方式连接视图?它在用于创建它的UIViewController *vc; UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; if (storyboard) { vc = [storyboard instantiateViewControllerWithIdentifier:@"ABCCustomViewControllerStoaryboardID"]; } 中使用时可以正常工作。

有关我在这里做错的建议吗?感谢。

3 个答案:

答案 0 :(得分:0)

试试这段代码:

UIStoryboard *loStoryboard ;
loStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

此代码用于从AppDelegate Class导航..

// Instantiate the initial view controller object from the storyboard
UIViewController *initialViewController = [loStoryboard instantiateInitialViewController];

// Instantiate a UIWindow object and initialize it with the screen size of the iOS device
self.view = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// Set the initial view controller to be the root view controller of the window object
[self.navigationController pushViewController:initialViewController animated:YES];

此代码可从Tabbar Controller导航..

UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"ABCCustomViewControllerStoaryboardID"];
[self.navigationController pushViewController:vc animated:YES];

答案 1 :(得分:0)

不,您不应该将视图控制器中的插座连接到UITableViewCell子视图。是的,我知道storboard允许它,但它在运行时不会像你(我)已经发现的那样工作。

我不知道为什么你需要一个静态单元子视图的出口,因为根据定义,你不应该修改它,因为它是静态的。

如果你真的想要一个插座,你可以创建一个UITableViewCell子类,用你想要的子视图将它分配给单元格,然后你可以从故事板中的子视图创建插座到UITableViewCell子类。您可以访问tableView:cellForRowAtIndexPath中的插座。虽然这会使您的表视图动态化。 :)

答案 2 :(得分:0)

我弄明白了这个问题。这与我测试另一个目标的事实有关,并且表视图子类未包含在该目标中。

我必须承认如果我找到一个没有找到错误的课程会很好。