【问题标题】:iOS Button Handler, segue based on button choiceiOS Button Handler,基于按钮选择的segue
【发布时间】: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 方法中。

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

【问题讨论】:

    标签: ios objective-c uitableview uibutton uistoryboardsegue


    【解决方案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 方法中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 2020-06-28
    • 2012-10-27
    • 1970-01-01
    相关资源
    最近更新 更多