2013-01-21 62 views
0

我看到是否有方法將變量傳遞給xcode中的按鈕。我有一個網絡鏈接,我正在從存儲到NSString的API中檢索。我只是想知道是否有辦法將它傳遞給一個按鈕,以便當它被點擊時它可以相應地跟隨鏈接。將值傳遞給xcode中的按鈕

+0

我會如何存儲索引標籤。我不熟悉如何做到這一點。 – bardockyo

回答

2

您將該URL存儲在某些ivar或財產中。像往常一樣爲您的按鈕分配一個操作。這個動作無非是你的視圖控制器的一種方法。在該方法中,您執行該鏈接。

這是你如何可以「跟隨」你的鏈接:

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

你的情況,你會用,我現在用在這個例子中一個NSString變量,而不是常量。

+0

我在本地存儲它,並且出現未聲明的標識符的錯誤使用。 – bardockyo

+0

在這種情況下,您尚未正確聲明該標識符。在大多數情況下,nealy all,編譯器說實話。 –

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]; 

...然後你可以GE再牛逼的URL,當按鈕被按下爲:

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

謝謝你的描述性答案。我將在哪裏播放代碼的MyButton * theButton部分?在viewDidLoad中? – bardockyo

+0

Np。你應該放在哪裏取決於你的應用程序。如果你想正確使用我上面寫的東西,你應該把它放在你的「api字符串」中。但是,只有當你分配並加載api字符串一次。如果您需要跟蹤按鈕本身並更新指定的api字符串/ url,則應該在.h文件中定義您的MyButton對象,並將其初始化,例如viewDidLoad,然後在dealloc中釋放它。 – pIkEL

+0

這是錯誤的方法。按鈕不應該存儲URL,這是視圖控制器的工作,如其他答案中所述。 – jrturton

相關問題