在IBOutlet
中使用相同按钮的IBAction
和tableviewcell
是不错的做法?
人们在单元格中有IBOutlets
而在IBAction
中有viewcontroller
的某些情况是什么时候?
谢谢!
答案 0 :(得分:2)
我可以在同一个tableViewCell中使用IBOutlet和IBAction吗?
是的,你可以使用。
在tableviewcell中使用相同按钮的IBOutlet和IBAction是一种好习惯吗?
根据我的观点,如果您在UIViewController
中使用IBAction,与UITableViewCell
相比会更好,因为如果您想对数据上的事件执行某些操作(在ViewController
中定义)在这种情况下,您可以轻松地执行不需要在全局范围内管理数据,但如果您希望在单元格中对事件执行某些操作,则需要在全局或使用委托管理该数据。
答案 1 :(得分:2)
如果你已经为.h和.m文件的自定义单元格取了uitableviewcell的子类,那么你应该在.h文件中定义IBOutlet,当你想定义它的动作时,你可以在cellForRowAtIndexPath:方法中定义它,并手动定义其目标方法。 如果您将在uiviewcontroller中定义此方法,那么它将对所有按钮操作执行相同的操作。
答案 2 :(得分:1)
首先,您需要了解IBOutlet和IBAction的使用。它们的使用完全不同。我们使用IBOutlet帮助界面构建器识别UI元素的引用变量,并使用IBAction帮助界面构建器识别事件/动作。因此,您没有理由不在同一类或单独的类中指定按钮的IBOutlet和该按钮的IBAction,如TableViewCell类中的IBOutlet和正在加载单元格的View Controller中的IBAction。 / p>
根据我的经验,我会说,如果您在“表格”视图单元格中有一个按钮,并且您希望根据该按钮的点击触发某个事件,那么实际操作方法实际上很有用。 CustomTableViewCell类。例如,让我们说,您想要在点击时更改按钮图像。在这种情况下,在didSelectRowAtIndexpath方法中,您可以更改按钮的选择状态,同时可以在视图类中检查IBAction方法中按钮的选择状态并设置图像。
另一方面,如果有基于按钮点击的控制流程,那么,根据按钮单击,您将转到另一个视图控制器,然后您可能想要在控制器中设置IBAction您需要访问导航控制器或视图控制器的类。
因此,这取决于您的IBAction方法的目的是什么,以及您执行操作所需的访问权限。