我是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并将其作为子节点嵌入到保存逻辑的主节点中。
这是正确的方法吗?你是如何处理的?
答案 0 :(得分:2)
我认为你这是错误的做法。在大多数情况下,使用IB是明智之举。 Xcode将为您更有效地创建UI元素的代码。
此外,使用IB和助理编辑器可以更快,更高效地进行布线。它还确保在需要的地方添加清理代码。
对于我的实现文件中的代码分离,我个人使用#pragma mark -
将我的Outlet声明与我的Action声明分开,然后始终将Actions的方法与其他方法分开(通常在顶部)。 / p>
我还私下声明Outlets的属性,除非出于某种原因需要公开。 我的结构: