0

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

4

2 回答 2

2

您将该 URL 存储在某个 ivar 或属性中。你像往常一样为你的按钮分配一个动作。该操作无非是您的视图控制器的一种方法。在该方法中,您执行该链接。

这是您可以“关注”您的链接的方式:

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

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

于 2013-01-21T21:05:42.657 回答
0

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

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

#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];
}
于 2013-01-21T21:23:56.977 回答