我有一个viewcontroller,它具有创建一个对象的功能,比方说,一个日历事件。
问题是我将拥有另一个viewController,它将具有编辑日历对象的功能。
他们拥有完全相同的UI,相同数量的字段,labesl和ect,除了导航栏不同的事实(编辑按钮与创建按钮)
我处理这种情况的常用方法是使用这一个viewController作为编辑和创建viewController。
然后,在我调用viewController之前,我传递一个状态告诉viewController它是否应该处于编辑或创建模式。
这里的问题是,我发现viewController是巨大的,并且viewController中有太多的逻辑来区分创建和编辑功能。
这是处理这种情况的更好方法吗?
答案 0 :(得分:0)
让我们看看,
选项1 将您的UI移动到单个UIView
$client = new Client($masterSID, $masterToken);
$subAccount = $client->api->accounts->create(array(
'FriendlyName' => 'NewSubAccount'
));
$subAccountSID = $subAccount->sid;
$subAccountToken = $subAccount->authToken;
选项2 考虑OOP
使用您的所有用户界面和方法制作 final class ParentView: UIView {
@IBOutlet private weak var titleLabel:UILabel?
var view: UIView! //<-- any object from your UI should be a subview to this view
var didPressButton:(()-> Void)? = nil
/*
use delegates or closure just like didPressButtons,
to pass actions or input value from your any actions from the user
Important: think of reference cycle and stay away from them lol
*/
@IBAction private func didPressButton(sender:UIButton) {
didPressButton?()
}
/*
if you wish to set UI from data, you can do the following:
*/
public func setTitleLableWith(string:String) {
titleLabel?.text = string
}
deinit {
titleLabel = nil
}
}
,然后隐藏或BaseViewController
您希望从任何override
类
选择权属于你,但我喜欢第一种选择。 :)快乐狩猎