0

我对iOS开发相当陌生。我通常在代码中创建我所有的 UIViews、UILabels、UIButtons 等,而不是使用 Interface Builder。这使得我的 UIViewControllers 变得非常大且难以遵循,将插座声明与实际操作和逻辑混合在一起非常容易。

- (UIButton *) continueButton {
    // if button is nil
    if(_continueButton == nil) {
        UIButton *button        = [[UIButton buttonWithType:UIButtonTypeCustom] retain]; 

        /* more configuration */

        _continueButton = button;
    }
    return _continueButton;
}

// occures when continue button is tapped
- (void) buttonTouch:(id) sender
{
    UIButton *button = ((UIButton *)sender);

    if(button == continueButton) {
        /* do stuff */
    }
}

我想要完成的是将实际动作、动画、逻辑等分开,并将按钮、标签和其他视图的声明存储在不同的文件中。

作为一种解决方案,我正在考虑使用“addChildViewController”创建另一个带有插座的 UIViewController,并将其作为子节点嵌入到包含逻辑的主节点中。

这是正确的方法吗?你如何处理它?

4

1 回答 1

2

我认为你正在以错误的方式解决这个问题。在大多数情况下,使用 IB 是一件明智的事情。Xcode 将比您更有效地为 UI 元素创建代码。

此外,使用 IB 和 Assistant Editor 将使连接变得更快、更高效。它还确保在需要的地方添加清理代码。

对于我的实现文件中的代码分离,我个人使用#pragma mark -将我的 Outlet 声明与我的 Action 声明分开,然后总是将 Actions 的方法与其他方法分开(通常在顶部)。

我还私下声明了 Outlets 的属性,除非出于某种原因它们需要公开。我的结构:

  • 我的方法在顶部
  • 下一步行动
  • 我的委托方法
  • 苹果的方法
于 2012-05-19T12:33:29.437 回答