Saturday 15 May 2010

objective c - Using IBAction to change Action of a different IBAction -


I have asked this question before but no answer was found. So I'm asking it again!

I have 4 radio buttons, like:

  - (IBAction) optWine: (ID) sender {ChangeLabel.text = @ "Signal: Created in Arcadia Wineries To get information about single-vineyard tababnet, try partial phrases like 'taxi';} - (IBAction) optWinery: (ID) sender {ChangeLabel.text = @ "Signal: California, Beautiful in Lompack Try a phrase like 'arc' to find arcadeia wineries. "} - (IBAction) opt-gri : (Id) sender {ChangeLabel.text = @ "sign Type 'Xin partial phrases such Jinfendel grapes'); } - (IBAction) optReview: (ID) sender {ChangeLabel.text = @ "Signal: Try partial phrase like 'Arc' for checkout review by wine by Arcadia Winery;}   

... and I have 4 other action buttons like this:

  - (IBAction) btnSearchWineries: (ID) sender {WineriesViewController * review = [[WineriesViewController alloc] initWithNibName: void Bundle: Zero]; Review Model Transition Style = UModal Transition Style Cross Dissolve; [Self Present ViewController: Animated Review : Yes Complete: Zero]; - (IBAction) btnSearchGrapes: (ID) Sender {GrapesViewController * review = [[Grape Viewer Controller Alloc] initWithNibName: Zero Bundle: Zero]; Review Model Transition Style = Uomodal Transition Style Cross DeSilve; [Self-present ViewController: Animated Review: Yes Complete: Zero];} - (IBAction) btnSearchWines: (ID) Sender {WinesViewController * review = [[WinesViewController alloc] initWithNibName: Zero Bundle: Zero]; Review Model Transition Style = Uimodal transition style cross Isilv; [Self present ViewController: animated review: yes complete: zero]; } - (IBAction) btnSearchReviews: (ID) sender {reviewsViewController * review = [[View reviews control alloc] initWithNibName: zero bundle: zero]; Review. Modal Transition Style = Uomodal Transition Style Cross DeSilve; [Self present ViewController: animated review: yes complete: zero];   

}

The radio button depends on which one, I want to change a button to activate a search button. There is something like that, but it does not work:

  - (iBAction) btn search: (id) sender {switch (((UIButton *) sender). Tag) {case 1: { WinesViewController * Review = [[[Winwiew Controller Allocyte] Init Whitelheim: Zero Bundle: Zero]; Review. Modal Transition Style = Uomodal Transition Style Cross DeSilve; [Self present ViewController: animated review: yes complete: zero]; break; } Case 2: {WineriesViewController * review = [[WineriesViewController alloc] initWithNibName: zero bundle: zero]; Review. Modal Transition Style = Uomodal Transition Style Cross DeSilve; [Self present ViewController: animated review: yes complete: zero]; break; } break; Case 3: {GrapeView Controller * Review = [[Grapher Viewer Algorithm] initWithNibName: Zero Bundle: Zero]; Review. Modal Transition Style = Uomodal Transition Style Cross DeSilve; [Self present ViewController: animated review: yes complete: zero]; break; } Case 4: {reviewsViewController * review = [[Review Controller Alloc] initWithNibName: Zero Bundle: Zero]; Review. Modal Transition Style = Uomodal Transition Style Cross DeSilve; [Self present ViewController: animated review: yes complete: zero]; break; } Default: Break; }   

}

I specified the tag in IB and nothing happened. I also tried to assign tags on different buttons, nothing happened. If I used the statement with strings, then nothing happened.

OK, how do I do this here Start by defining an enum like this:

  typed NS_ENUM (NSInteger, SearchType) {SearchTypeWine, SearchTypeWinery, SearchTypeGrapes, SearchTypeReviews};   

Give your controller such property:

  @property (nonatomic) SearchType searchType;   

Then you create 4 UIButtons. You can rule them all, thereby reducing the LoC.

  - (IBAction) button pressed: (ID) sender {UIButton * button = (UIButton *) sender; Switch (button .tag) {case 100: self Search Type = Search Type Wine; break; Case 101: self.searchType = SearchTypeWinery; break; Case 102: self.searchType = SearchTypeReviews; break; Case 103: self.searchType = SearchTypeGrapes; break; Default: Break; }}   

Then the method to perform the search:

  - Search for (IBAction): Sender {switch (self.searchType) { Case SearchTypeWine: // proper break-up operation; Case Search Typeware: // handle correctly to brake; Cases SearchTypeReviews: // Proper Breakdown Operations; Case searchTypeGrapes: // Handle to break the proper; Default: Break; }}    

No comments:

Post a Comment