iOS Button Handler,基于按钮选择的segue

Posted

技术标签:

【中文标题】iOS Button Handler,基于按钮选择的segue【英文标题】:iOS Button Handler, segue based on button choice 【发布时间】:2013-01-22 01:31:16 【问题描述】:

我试图在我的应用程序中完成的那种设计目前包括一个导航控制器,它是另一个称为 Test 的 View 控制器的根控制器。测试由上半部分的 UITableView 和下半部分的 UIImageView 组成。顶部的导航栏(作为导航控制器的结果)包含两个按钮。下面链接中的图片(我没有直接发布图片的声誉点)应该很清楚。

http://i.imgur.com/GM5eH.png?1

我希望我的设计能够根据按下的按钮改变 imageview 中的图像,虽然 table view 中的文本保持不变,但它们将在未来过渡到完全不同的屏幕.举个例子,无论点击哪个按钮,我的表格视图都将包括:选项 1、选项 2 和选项 3。但是,按钮 A 的选项 1 与选项 B 不同,依此类推。而且,这就是挑战所在是给我的。我已经能够根据成功按下按钮来换出图像。我通过使用 IBActionNavBarButonPressed 然后根据发件人标签换出图像来做到这一点。不幸的是,我不知道如何从这里开始。例如,我在这里有接下来的几个屏幕。但是,我如何设置 segues/transitions 使得只有选项 A 的选项 1 进入某个屏幕等等。据我了解,我正在研究 prepareforSegue 和 navBarbuttonPress IBAction 的组合,但我仍然不确定这将如何工作。

伙计们,我很确定我要做什么,但由于我是目标 C 的新手,我不完全确定如何去做。本质上,我希望逻辑类似于 if(element.selected==0) && (IBActionProvider==1) performSegueWithIdentifier:@"blah" sender.self];我的问题是是否将其放入 IBAction navBarButtonPressedMethod 或将其放入 didSelectRowAtIndexPath 方法中。

感谢和抱歉这个冗长的问题!

【问题讨论】:

【参考方案1】:

首先,您为其他故事板视图命名。它包含左侧面板(故事板标识符:)。

您应该为所有按钮创建 segue 并为其指定标识符。

那么你应该像这样使用prepareforSegue

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

    if ([[segue identifier] isEqualToString:@"ToContacts"])
        
        // Get reference to the destination view controller
        ContactVC *targetVC = [segue destinationViewController];
        // Pass any objects to the view controller here, like...
        targetVC.CompanyNme = selectedRowValue;
    
    if ([[segue identifier] isEqualToString:@"ViewCompany"])
    
        ContactVC *targetVC = [segue destinationViewController];
        targetVC.CompanyNme = selectedRowValue;
    


@"ToContacts" means your storyboard identifier.

【讨论】:

这不能回答我的问题。我知道如何继续,但是对我来说重要的事情是:1)当点击一行时会发生segue。该设计使得无论按下哪个按钮,表格视图都包含相同的选项,但是底部的图像会发生变化。 2) 例如,当点击表格视图的第一行时,重要的是要知道我们点击了哪个按钮以进行转场,因为转场根据点击的按钮而有所不同。 创建变量调用作为值。 EX:int btnSelect=0;然后,当您单击选项时,为每个选项提供不同的值。 EX(选项 1:btnSelect=1,选项 2:btnSelect=2,选项 3:btnSelect=3)。然后你使用 didSelectRowAtIndexPath ,你可以得到你选择的选项,并根据选项传递到其他屏幕。 嗯,这仍然不适用于我正在尝试做的事情。看图像。我的 segue 取决于两个不同的东西:选择的按钮和选择的表视图中的行。正如我所说,我正在努力实现这一目标: f(element.selected==0) && (IBActionProvider==1) performSegueWithIdentifier:@"blah" sender.self] 但不确定是否将其放入IBAction navBarButtonPressedMethod 或将其放在 didSelectRowAtIndexPath 方法中。

以上是关于iOS Button Handler,基于按钮选择的segue的主要内容,如果未能解决你的问题,请参考以下文章

在第三个按钮上使用 UIPickerView 进行依赖选择

iOS开发 UIButton的基本属性

如何基于选择表单启用和禁用垫按钮

用户按下按钮时弹出日期选择器[重复]

iOS Button 在自定义视图中不起作用

SwiftUI button 与sheet的使用