我有一個帶有五個按鈕的視圖控制器。每個按鈕應觸發模態SEGUE基於按鈕的標籤的不同視圖控制器,通過聲明的常量來表示:iOS Switch語句不起作用?
- (IBAction)aButtonTapped:(UIButton *)sender
{
[self buttonForSegue:sender];
}
-(void) buttonForSegue:(UIButton *)sender
{
switch ([sender tag])
{
case aVsAButton_tag:
[self performSegueWithIdentifier:@"aVsAModal" sender:self];
break;
case cVsCButton_tag:
[self performSegueWithIdentifier:@"cVsCModal" sender:self];
break;
case actVsAllButton_tag:
[self performSegueWithIdentifier:@"actVsAllModal" sender:self];
break;
case catVsAllButton_tag:
[self performSegueWithIdentifier:@"catVsAllModal" sender:self];
break;
case customDatePickerButton_tag:
[self performSegueWithIdentifier:@"customDatePickerModal" sender:self];
break;
default:
break;
}
}
不管我打哪個按鈕,在SIM中的應用程序崩潰與此消息(僅按鈕名稱改變):
2014年2月10日19:11:47.305 WMDGx [24366:A0B] - [ReportViewController aVsAllButton:]:無法識別的選擇發送到實例0x8a911e0 2014年2月10日19:11: 47.307 WMDGx [24366:a0b] * **因未捕獲異常'NSInvalidArgumentException'而終止應用程序,原因:' - [ReportViewController aVsAllButton:]:無法識別的選擇器已發送至實例0x8a911e0'
我的代碼對我來說看起來很合理,但顯然不是。有人可以告訴我我要去哪裏嗎?
謝謝!
此問題對您的switch語句沒有任何影響。崩潰告訴你具體的問題。你在你的'ReportViewController'上調用它不響應的選擇器。您需要顯示代碼調用'aVsAllButton:'選擇器的位置。 –
@傑里米 - 鄧肯C在第二個答案中釘了它。感謝您的迴應! – rattletrap99