【问题标题】:UITableViewController static cells not appearing when pushed to navigationController推送到 navigationController 时 UITableViewController 静态单元格不出现
【发布时间】:2013-10-18 04:50:56
【问题描述】:

我陷入了困境... 我创建了一个带有静态单元格的 UITableViewController(我删除了所有默认的 UITableView 方法)。每当我转到这个视图控制器时,静态单元格就会出现,但是当我将它推到导航控制器上时,静态单元格不会出现……知道为什么会这样吗?

这是我的代码:

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

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

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

感谢您的帮助!

【问题讨论】:

    标签: ios objective-c uitableview


    【解决方案1】:

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

    在情节提要中为您的静态表视图提供一个标识符并像这样初始化它:

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

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

    【讨论】:

    • 这么说?我将如何为该视图控制器进行自定义初始化?
    • 什么意思?只需将您的alloc init 替换为我提供的代码即可。然后将其推送到您的导航控制器上。
    【解决方案2】:

    当您只是调用 [[UIViewController alloc] init] 时,您在情节提要上添加和配置的 UI 对象不会被调用或连接到您的视图控制器。

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

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

    【讨论】:

      猜你喜欢
      • 2019-07-10
      • 1970-01-01
      • 1970-01-01
      • 2012-02-05
      • 1970-01-01
      • 1970-01-01
      • 2015-08-01
      • 1970-01-01
      • 2012-06-29
      相关资源
      最近更新 更多