将值传递给xcode中的按钮

时间:2013-01-21 20:58:38

标签: ios objective-c

我看到是否有办法将变量传递给xcode中的按钮。我有一个Web链接,我正在从我存储到NSString的API中检索。我只是想知道是否有办法将其传递给按钮,以便在点击它时可以相应地跟随链接。

2 个答案:

答案 0 :(得分:2)

您将该网址存储在某些ivar或属性中。您可以照常为按钮指定操作。该操作不过是一个视图控制器的方法。在该方法中,您执行该链接。

这就是你可以"关注"你的链接:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.klecker.de"]];

在您的情况下,您将使用NSString变量而不是我在此示例中使用的常量。

答案 1 :(得分:0)

您可以将UIBUtton子类化并添加您喜欢/需要的任何属性/变量。根据您的描述,我将使用NSURL而不是NSString ...

在.h文件中创建一个新的UIButton子类:

#import <UIKit/UIKit.h>
@interface MyButton : UIButton
{
     NSURL* buttonUrl;
}
@property (nonatomic, retain) NSURL* buttonUrl;
@end

并在.m文件中简单地说:

#import "MyButton.h"
@implementation MyButton
@synthesize buttonUrl;
@end

然后在你的ViewController中:(别忘了#import“MyButton.h”

MyButton *theButton = [[MyButton alloc] initWithFrame:someframe];
[theButton addTarget:self action:@selector(buttonPushed:) forControlEvents:UIControlEventTouchUpInside];
theButton.buttonUrl = [NSURL URLWithString:apiString];
[self.view addSubView:theButton];
[theButton release];

...然后,当按下按钮时,您可以再次获取URL:

-(void)buttonPushed:(id)sender{
    NSURL* theUrl = [(MyButton*)sender getButtonUrl];
}