iOS-未调用警报视图中的segue
当我按下AlertView上的手动输入和扫描标签按钮时,我想执行一个序列iOS-未调用警报视图中的segue,ios,objective-c,uiviewcontroller,uialertview,uistoryboardsegue,Ios,Objective C,Uiviewcontroller,Uialertview,Uistoryboardsegue,当我按下AlertView上的手动输入和扫描标签按钮时,我想执行一个序列 @implementation triageViewController - (IBAction)addNew:(id)sender { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Add A New Entry" message:@"Choose a w
@implementation triageViewController
- (IBAction)addNew:(id)sender {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Add A New Entry"
message:@"Choose a way to add a new entry."
delegate:nil
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Manual Entry", @"Scan Tag", nil];
[alert show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex != alertView.firstOtherButtonIndex) {
[self performSegueWithIdentifier:@"manual" sender: self];
}
if (buttonIndex != alertView.cancelButtonIndex) {
[self performSegueWithIdentifier:@"scan" sender: self];
}
}
(我意识到这可能会使取消按钮的预成型现在成为一个环节,但我更关心的是它的工作)
我的故事板中有两个片段,从一个UIABViewController到两个不同的UIViewController。这两个都没有被调用,所以当我点击它们时。我尝试使用推式和模态两种方式,但都不起作用
我也尝试过这样的if/else语句:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 0) {
[self performSegueWithIdentifier:@"manual" sender: self];
}
if (buttonIndex == 1) {
[self performSegueWithIdentifier:@"scan" sender: self];
}
}
但这也不起作用
有人能帮我找出哪里出了问题吗?同样,如果我不清楚,我想将UIAbbarController上的UIAlertView弹出窗口与两个单独的UIViewController进行分段。
谢谢看起来您的
UIAlertView
有一个委托
为nil
,因此您的函数永远不会被调用。将其设置为self
,然后在视图控制器的标题中确保您正在实施UIAlertViewDelegate
协议。什么不起作用?您的代码是否通过了if
测试?当您在ClickedButtonIndex中放置断点并对其进行调试时会发生什么情况?它是否绕过了if语句?还是叫表演格?segue的名称是否正确,是否直接连接到TriageViewController?想贴一张你故事板那部分的照片吗?嘿,伙计们,segue坏了。我意识到我只是忘记了将委托设置为self
,正如@Miron所回答的那样。谢谢你,我不知道为什么我没有注意到,谢谢你帮我省去了头痛。