【问题标题】:Dynamically created buttons and storyboard segue动态创建的按钮和故事板segue
【发布时间】:2012-12-27 06:28:56
【问题描述】:

由于代码中的这个问题,我被卡住了:

我正在使用情节提要,并且有我的自定义表格视图,该表格视图能够滑动行以发现我可以添加按钮等的“背景”。 问题是数量和存在是在运行时管理的(每个单元格可以有多个按钮或没有 - 我将它们添加到背景视图中)。现在我想让这些按钮继续,我只是不知道如何在我的故事板中做到这一点...... 有人有类似的问题还是我想错了?

【问题讨论】:

    标签: ios uitableview uistoryboard uistoryboardsegue


    【解决方案1】:

    另一种方法是继续在情节提要中创建转场。您无法将它们连接到按钮(因为它尚不存在),但您可以将它们连接到表所在的视图。您给 segue 一个标识符(通过单击作为 segue 的行和设置属性)。那么,调用就很简单了:

    [self.storyboard performseguewithidentifier:@"theIdentifier"];
    

    【讨论】:

    • Yeeeaah... 好吧 - 我通过创建自定义 segue(从情节提要中的控制器图标中提取)解决了这个问题,并从我的 onButtonTap 代码中触发它。非常简单明了。
    • 如果它有效,这听起来很天才,但这是否意味着如果用户点击 tableview 所在的视图内的任何地方,它会激活这个 segue?
    • @ChuckKelly:不,它只会从控件自动触发。
    【解决方案2】:

    你不能在故事板之外建立segue连接:

    Creating a segue programmatically

    您可以在代码中制作自定义转场,但将转场连接到对象只能通过在情节提要上绘制线条来完成。

    但你不需要。 Segue 只是视图控制器之间的修饰转换。它们是用于替换少量代码的可视化工具。

    例如,push segue 只是替换了这段代码

    UIViewController* myViewController = [UIViewController alloc] init;
    [[self navigationController] pushViewController:myViewController
    

    当您在代码中制作按钮时,您应该在代码中管理您的导航。

    【讨论】:

      【解决方案3】:

      首先您需要设置 StoryBoard ID。您可以通过选择特定的视图控制器并在右侧进入身份检查器来做到这一点。在自定义类下,有“StoryBoard ID”,你必须设置名称“Menu”

      其次,您需要从按钮或任何其他控件调用此情节提要。您可以使用以下方法来执行此操作:

      [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"];
      

      通过这种方式,您可以将 StoryBoard ID 分配给 StoryBoard 中的不同控制器,并从您想要的任何控件调用它们。

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 2013-06-30
        • 1970-01-01
        • 2016-07-13
        • 1970-01-01
        • 2012-05-12
        • 1970-01-01
        • 1970-01-01
        • 2018-02-09
        • 2012-05-16
        相关资源
        最近更新 更多