基于 Segue 源的单个按钮的多个操作
Posted
技术标签:
【中文标题】基于 Segue 源的单个按钮的多个操作【英文标题】:Multiple Actions for Single Button Based on Segue Source 【发布时间】:2014-01-08 06:53:52 【问题描述】:我有 ViewControllerA 和 ViewControllerB,它们都是包含项目列表的表 VC。现在,您可以单击 ViewControllerA 上的“添加项目”,这将打开 ListViewController,您可以在其中从列表中选择/添加新项目...有一个条形按钮“完成”项目,当您完成后,您将返回 ViewControllerA您的选择。
到目前为止,我只是通过将“完成”按钮拖到 Storyboards 中的 Exit 并选择了我创建的展开操作来完成所有这些操作(因此没有示例代码可显示)。
现在我想在 ViewControllerB 上,单击“编辑”按钮将我带到同一个 ListViewController,在那里我可以进行编辑并返回 ViewControllerB。在 Storyboard 中,当我拖动“完成”按钮并选择 ViewControllerB 展开操作时,它会从 ViewControllerA 中删除该操作。
我的问题:我是否必须从头开始拖拽 Storyboard 并以编程方式完成这一切?甚至可以让一个按钮基于源 ViewController 执行多个操作吗?
我很难找到准确的搜索查询,因此很难排除故障。
【问题讨论】:
【参考方案1】:这可以通过枚举来完成,比如首先定义不同的状态或动作
typedef enum
firstAction,
secondAction,
soOnnn.....
ActionTypeType;
现在当你要推送你的控制器时,定义一个类似的属性
@property (nonatomic, assign) LeagueType actionType;
并将其设置为您想要的操作
[backButton addTarget:self action:@selector(commonAction:) forControlEvents:UIControlEventTouchUpInside];
并为不同的动作设置一个开关盒,例如
-(void)commonAction:(id)sender
switch(_actiontype)
case firstAction: // do you code here
【讨论】:
以上是关于基于 Segue 源的单个按钮的多个操作的主要内容,如果未能解决你的问题,请参考以下文章
在多个管道上创建具有多个输入源的单个管道的意义,每个管道都定义了单独的输入源?
Oracle Apex 中具有动态操作的单个按钮上的多个条件