Anon
Anon

Reputation: 317

ActionSheet keeps appearing for every button

I have a method which throws up an actionSheet which is populated by an array.

The problem is that as soon as I place that method in the sender for 1 button, it fires off for every single button press.

I only want it to display for the one button (btnPortfolio).

Here is the code for my buttons:

 - (IBAction)btnPortfolio:(id)sender {
    [self populatePortfolioList];
 }

- (IBAction)btnAdd:(id)sender {

}

- (IBAction)btnRefresh:(id)sender {
}

and here is my method:

-(void)populatePortfolioList{
    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Choose your option"
                                                             delegate:self
                                                    cancelButtonTitle:nil
                                               destructiveButtonTitle:nil
                                                    otherButtonTitles:nil];
    for (NSString *title in portfolio_list) {
        [actionSheet addButtonWithTitle:title];
    }
    actionSheet.cancelButtonIndex = [actionSheet addButtonWithTitle:@"Cancel"];
    [actionSheet showInView:self.view];
}

Upvotes: 0

Views: 41

Answers (1)

nburk
nburk

Reputation: 22731

since you are using IBActions, I assume that you have somehow created the methods by ctrl+dragging from the buttons into your code? is that the case? it might be possible that you accidentally connected more than one of your buttons with the method btnPortfolio which causes populatePortfolioList to be called any time the button is pressed

Upvotes: 1

Related Questions