在UINavigationController中的ViewControllers之间传递数据

时间:2010-06-28 04:56:01

标签: iphone objective-c cocoa-touch

(续this thread

假设我创建了以下视图:

http://cl.ly/1USw/content

“查看”按钮应该推送一个新的ViewController,它将显示Josh或Al的所有照片,具体取决于按下的按钮。

我的问题是

在ViewController代码中,如何确定按下哪个“查看”按钮(顶部或底部)?

这是我的代码:

- (IBAction) viewImageList {
    PhotoListViewController* photoListViewController = [[PhotoListViewController alloc] 
                                                        initWithNibName:@"PhotoListViewController" 
                                                        bundle:[NSBundle mainBundle]];

    // here, I want to dynamically pass in the name (Josh or Al) based on which 'View' button is pressed
    photoListViewController.ownerName = @"someName";

    [[self navigationController] pushViewController:photoListViewController animated:YES];
    [photoListViewController release];

}

或者,如果有人有不同的方法,我想听听它:)

2 个答案:

答案 0 :(得分:2)

您的IBAction应该收到指向事件发件人的指针: (IBAction)viewImageList:(id)sender 您可以检查发件人的tag属性,也可以保留一组按钮,并将发件人的身份与阵列中按钮的标识进行比较,以查看点击源自何处。

答案 1 :(得分:1)

如果你在这些按钮上的内部动作转到同一个ibaction方法调用,你可以将每个按钮的标记值设置为代码或界面构建器中的唯一值,然后判断发件人值但添加:(id)发送者喜欢

  • (IBAction)viewImageList:(id)sender { if([sender isKindOfClass:[UIButton class]]){ uIButton btn =(UIButton )发件人; 开关(btn.tag){ ...