【问题标题】:Storyboard UITableView not showing static contentStoryboard UITableView 不显示静态内容
【发布时间】:2013-12-17 21:24:17
【问题描述】:

我有一个 UITableViewController,其 Content 属性设置为静态单元格,我没有覆盖任何与数据源相关的方法,我只是在静态单元格中有一些简单的标签,但是当视图加载时它是空的!

我用以下方法从另一个控制器推送到这个控制器的一件重要事情:

 TransactionDetailViewController* appTransactionDetailsView = [[TransactionDetailViewController alloc] init];

[[self navigationController] pushViewController:appTransactionDetailsView animated:YES];

有什么想法吗?

【问题讨论】:

    标签: ios objective-c uitableview storyboard


    【解决方案1】:

    如果您在 Storyboard 中创建了静态单元格,则可以尝试从那里实例化它。您只是在实例化类 (.h / .m),而不是在 Storyboard 中创建的。

    在故事板中,在 Identity Inspector 中为TransactionDetailViewController 提供一个故事板 ID,即transactionDetail

    然后用这个替换你的代码:

    TransactionDetailViewController *appTransactionDetailsView = [self.storyboard instantiateViewControllerWithIdentifier:@"transactionDetail"];
    [[self navigationController] pushViewController:appTransactionDetailsView animated:YES];
    

    【讨论】:

    • 很好用,但是使用 self.storyboard 的一小部分是零,所以我不得不使用这个代码: UIStoryboard storyboard = [UIStoryboard storyboardWithName: @"MainStoryboard" bundle:[NSBundle mainBundle] ]; TransactionDetailViewController appTransactionDetailsView = [storyboard instantiateViewControllerWithIdentifier:@"transactionDetails"]; [[self navigationController] pushViewController:appTransactionDetailsView 动画:YES];
    【解决方案2】:

    您创建了一个 viewController 的实例,在情节提要中您已经定义了 UI。在情节提要中使用 segue:

    [self performSegueWithIdentifier:@" <segueName> " sender:self];
    

    或者给 viewController 一个 storyboardID 并使用:

    MenuTableViewController *mtvc = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"];
    
    [self.navigationController pushViewController:mtvc animated:YES];
    

    【讨论】:

      【解决方案3】:

      不要在这里使用 alloc-init,基本上你需要通过 UIStoryboardSegue 访问你的 UIViewController - 只需按住 ctrl 开始从源视图控制器拖动到目标,释放左键并选择推送或模式。以某种方式命名(myItemDetails)

      之后只需在源 vc 中处理事件处理程序

      [self performSegueWithIdentifier:@"myItemDetails" sender:self];
      

      或源 vc 中的第二个(无 segue)选项:

      UIViewController *detailsVC = [self.storyboard instantiateViewControllerWithIdentifier:@"detailVC"];
      [self.navigationController pushViewController:detailsVC];
      

      要使用第二个选项,不要忘记在故事板编辑器中将 StoryboardID 设置为目标视图控制器

      【讨论】:

        猜你喜欢
        • 2014-09-19
        • 1970-01-01
        • 1970-01-01
        • 2013-11-11
        • 1970-01-01
        • 2011-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多