2014-02-18 39 views
0

這是我用來動態更改我的UITextView中的文本的代碼,基於在我的NSArray中選擇了哪個項目。如何通過NSArray更改按鈕後面的鏈接?

NSMutableString *flavorsText = [NSMutableString string]; 
for (NSString* preworkout in self.preWorkout.flavors) { 
    [flavorsText appendFormat:@"%@\n", preworkout]; 
} 

self.flavorsTextView.text = flavorsText; 

我很好奇,我怎麼能基於鍵入到了NSArray的鏈路上改變單一的按鈕後面的鏈接。我希望它基本上具有與上面的代碼相同的功能。

+0

什麼是默認鏈接?按鈕有什麼作用? – berentrom

+0

這將是一個單一的按鈕,說現在購買!但是,該按鈕將位於視圖控制器中,該視圖控制器根據NSArray中的對象更改其信息。該按鈕鏈接到商店網站。 –

+2

發佈點擊按鈕時調用的方法。 – RaffAl

回答

0

您需要將URL存儲在某處。一個屬性添加到您的類:

@property (nonatomic, strong) NSURL *storeURL; 

按鈕的代碼應該是這個樣子:

- (IBAction)buyNow:(id)sender 
{ 
    [someWebView loadRequest:[NSURLRequest requestWithURL:self.storeURL]]; 
} 

當用戶更改選擇,更新storeURL屬性的新網址。

+0

好吧,這是有道理的,但只是澄清,什麼是一些WebView?我沒有在我的視圖控制器中實現任何Web視圖。 –

+0

如果你沒有在你的界面中實現UIWebView,你打算如何加載鏈接?我建議不要將用戶踢到Safari,但以下是您如何做到這一點:'[[UIApplication sharedApplication] openURL:self.storeURL];' – aapierce

+0

實際上,這是計劃,推動他們到safari查看網頁。你爲什麼推薦這個? –

0

基本上你有一個數組,someArrayOfLinks,其中包含NSString url字符串,是否正確?

因此,正如你所知數組是基於索引的,所以someArrayOfLinks[9]給你數組中的第10項(從0開始)。所有UIView對象及其子類都具有包含整數的標籤屬性。所以,我會做的是這樣的:

無論你在哪裏設置口味:

self.buyNowButton.tag = someInteger; 

然後,當他們點擊按鈕

- (IBAction)didSelectBuyNowButton:(UIButton *)sender { 
    NSString *urlPath = someArrayOfLinks[sender.tag]; 
    NSURL *url = [NSURL URLWithString:urlPath]; 
    [[UIApplication sharedApplication] openUrl:url]; 
} 
+0

我的NSArray沒有顯示出來,我不應該在someArrayOfLinks的位置輸入它嗎?另外buyNowButton.tag和didSelectBuyNowButton有什麼不同。此外,someInteger和openUrl應該是什麼? –

+0

購買是的我有一個NSArray與多個對象,如名稱,公司名稱,口味,大小和信息,我基本上想要一個對象=一個nsstring的房子鏈接。味道如何等於上面的NSArray。 –

+0

如果您下載此應用程序的源代碼https://dl.dropboxusercontent.com/u/2857188​​/RecipeAppSearchBar.zip,您幾乎可以確切地看到我如何設置NSArray以及如何將對象連接到RecipeDetailViewController .h和.m以及Recipe.h文件。 –