UITableViewController静态单元格在推送到navigationController时不会出现

时间:2013-10-18 04:50:56

标签: ios objective-c uitableview

我遇到了一个车辙...... 我用静态单元格创建了一个UITableViewController(我删除了所有默认的UITableView方法)。每当我转向这个视图控制器时,静态单元格就会出现,但是当我将它推到导航控制器上时,静态单元格就不会出现......任何想法为什么会出现这种情况?

这是我的代码:

//shows empty uitableviewcontroller 
OthersUsersTableViewController *tvc = [[OthersUsersTableViewController alloc]init];

[self.navigationController pushViewController:tvc
                                     animated:YES];

//works
        [self performSegueWithIdentifier:@"toOtherUser" sender:self];

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

当您刚刚调用[[UIViewController alloc] init]时,您在故事板上添加和配置的UI对象不会被调用或连接到您的视图控制器。

您应该通过故事板本身实例化视图控制器,方法是向视图控制器添加标识符(在故事板上)并调用故事板的instantiateViewControllerWithIdentifier方法。 您可以通过当前视图控制器的故事板属性获取对故事板的引用。

OthersUsersTableViewController *tvc = [self.storyboard instantiateViewControllerWithIdentifier:@"identifier"];

答案 1 :(得分:1)

如果您手动分配并初始化静态表视图,您的应用应该如何知道它在故事板中引用静态表视图?

在故事板中为静态表视图提供标识符,并将其初始化为:

OthersUsersTableViewController *tvc = [self.storyboard instantiateViewControllerWithIdentifier:@"staticTableView"];

您可以在右侧菜单中设置标识符,您也可以在其中设置视图控制器的自定义类。该字段称为Storyboard ID。