【问题标题】:How to send and get data between two view controller?如何在两个视图控制器之间发送和获取数据?
【发布时间】:2013-02-05 18:05:24
【问题描述】:

我在情节提要中有两个视图控制器。 VC1 有三个按钮,VC2 有一个图像视图。

当点击VC1中的按钮A时,VC2显示A的图像。 当点击VC1中的按钮B时,VC2显示B的图像。

VC2如何知道VC1点击了哪个按钮?

【问题讨论】:

    标签: ios xcode


    【解决方案1】:

    这很简单!!!

    1) 在 VC2 中在 .h 文件中创建 NSString 属性,然后在 .m 文件“NSStringObjofVC2”中合成该属性 2) 在 VC1 .h 文件中导入 VC2 #import "VC2" 并创建这样的对象

    VC2 *vc2Obj;

    3) 在 vi​​ewdidload 方法中

    vc2Obj = [[VC2 alloc] init];

    4) 在每个按钮上单击添加此

    vc2Obj.NSStringObjofVC2 = @"differentImageNameforAll3Buttons.png";

    最后在 VC2 中使用图像

    只需在 UIImage 中使用 NSStringObjofVC2 作为文件名

    【讨论】:

    • 感谢您的指导。我很重视你的帮助。它支持我更轻松、更快捷。再次感谢。
    【解决方案2】:

    在 VC2 中设置委托以将信息发送回原始 VC。 谷歌“objective-c delegate”并阅读模型-视图-控制器范式。

    【讨论】:

    • 感谢您的回复。它帮助我节省了开发应用程序的时间。感谢您的帮助。
    【解决方案3】:

    你可以做到 Segue:

    1. 添加导航控制器:选择 VC1,然后选择 Editor> Embedded In> Navigation Controller
    2. 提供从 Button A 到 VC2、从 Button B 到 VC2、从 Button A 到 VC2l 的 segue 连接

    3. 分别输入转场标识符 SegueA、SegueB、SegueC。

    4. 在VC1中编写如下方法:

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

    ImageViewController *vc2=(ImageViewController*)[ segue destinationViewController];
    
    if([[segue identifier] isEqualToString:@"SegueA"]){
    
    vc2.imageView.image =[UIImage imageNamed:@"a.png"];
    
    }else
    if([[segue identifier] isEqualToString:@"SegueB"]){
    
            vc2.imageView.image =[UIImage imageNamed:@"b.png"];
    
    }else
    if([[segue identifier] isEqualToString:@"SegueC"]){
    
    vc2.imageView.image =[UIImage imageNamed:@"c.png"];
    
    }
    

    }

    【讨论】:

    • 感谢您的建议和帮助。我是iOS的初学者。我对iOS了解不多。您的帮助支持我的学习。再次感谢。
    猜你喜欢
    • 2017-11-03
    • 2012-12-17
    • 2017-10-13
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多