在创建和编辑视图之间切换

时间:2017-12-08 01:49:50

标签: ios swift

我有一个viewcontroller,它具有创建一个对象的功能,比方说,一个日历事件。

问题是我将拥有另一个viewController,它将具有编辑日历对象的功能。

他们拥有完全相同的UI,相同数量的字段,labesl和ect,除了导航栏不同的事实(编辑按钮与创建按钮)

我处理这种情况的常用方法是使用这一个viewController作为编辑和创建viewController。

然后,在我调用viewController之前,我传递一个状态告诉viewController它是否应该处于编辑或创建模式。

这里的问题是,我发现viewController是巨大的,并且viewController中有太多的逻辑来区分创建和编辑功能。

这是处理这种情况的更好方法吗?

1 个答案:

答案 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

获取的任何方法

选择权属于你,但我喜欢第一种选择。 :)快乐狩猎