使用UIButton将信息发送到void方法

时间:2014-08-20 00:43:22

标签: ios objective-c uibutton

我正在使用for循环创建一大组按钮,并希望在单击按钮时从一组发送数据

我的按钮处于for循环中,如此

标题正在for循环中处理,而Url是标题键

的字典
-(void)addToScrollView {

     UIColor *ezBlue = [UIColor colorWithRed:(17.0 / 255.0) green:(95.0 / 255.0) blue:(207.0 / 255.0) alpha: 1];
    UIColor *ezGreen = [UIColor colorWithRed:(57.0 / 255.0) green:(145.0 / 255.0) blue:(2.0 / 255.0) alpha: 1];


    yLoc = 0;
    for(NSString *titleString in titlesArray) {

        int bufferInt = 2;
        buttonHeight = 0;
        buttonTop = yLoc;

        NSString *descString = [dFT objectForKey:titleString];
        NSString *dispUrlString = [duFT objectForKey:titleString];
        NSString *urlString = [uFT objectForKey:titleString];

        ...
        ...

        UIButton *buttonToPage = [[UIButton alloc] initWithFrame:CGRectMake(20, buttonTop, 280, buttonHeight)];
        [buttonToPage addTarget:self action:@selector(customBrowser:) forControlEvents:UIControlEventTouchUpInside];

        [mainScrollView addSubview:buttonToPage];

    }
    height = yLoc;
    [self scrollViewHeight];
}

和void方法将数据发送到

-(void)customBrowser:(NSString *)url {
//Do Stuff here
}

如何将诸如url之类的信息传递给void方法,以便对其进行处理。

2 个答案:

答案 0 :(得分:2)

可能你有一个带有URL的数组,或者类似的东西,对吗?

这不是最好的方法,但你可以使用"标签"按钮中的属性,用于指示URL的索引。

-(void)customBrowser:(UIButton *)sender
{
   NSString *stringURL = self.arrayURL[sender.tag];
   //do your stuff here
}

但是,我建议您尝试使用TableViews或CollectionViews来解决您的问题。

答案 1 :(得分:0)

结束将按钮的标题设置为url并在方法中读取它。

设置......

UIButton *buttonToPage = [[UIButton alloc] initWithFrame:CGRectMake(20, buttonTop, 280, buttonHeight)];
        [buttonToPage setTitle:urlString forState:UIControlStateNormal];
        [buttonToPage addTarget:self action:@selector(customBrowser:) forControlEvents:UIControlEventTouchUpInside];

        [mainScrollView addSubview:buttonToPage];

读它......

-(void)customBrowser:(UIButton *)sender {
//Do Stuff here
NSLog(@"The button title is %@",sender.titleLabel.text);

}