2014-02-18 41 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文件。 –