带有故事板设置的iPhone应用程序。链接到另一个视图的初始视图上的按钮。我已经为该按钮添加了一个警告点击,这样当点击它时,视图会发生变化,并立即显示警告,询问“你想继续吗?是否'
如果他们点击是,则警报消失,如果他们点击否,故事板应该回到开头。
这是我到目前为止所做的,它不起作用,没有任何反应。我尝试了多种各样的解决方案,但到目前为止还没有任何工作。删除buttonindex检查无效。
我实际上更喜欢这个警报甚至在视图发生变化之前就出现了,但是当我发现segue之后它显示出来并不理想但是如果我能让它反过来它仍然是可以接受的。< / p>
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex==1) {
[self.navigationController popViewControllerAnimated:YES];
}
}
任何想法?
答案 0 :(得分:1)
我猜你已经使用故事板上的segue将第一个视图上的按钮链接到第二个视图。为了得到它以便在第一个视图上弹出UIAlertView,然后根据是否单击是或否触发segue,您需要删除该segue,而是通过从第一个视图中按住Ctrl键拖动再创建它(不是按钮)到第二个视图。
通过按住Ctrl键从按钮拖动到视图.h文件并选择操作,为按钮创建IBAction(如果尚未创建)。这应该会自动在.m文件中创建方法 - 在该方法中,您需要调用UIAlertView。
- (IBAction)buttonPressed:(id)sender
{
[myAlertView show];
}
然后clickedButtonAtIndexMethod应该与之前的相似。而不是弹出控制器(因为segue没有自动发生),你将需要使用performSegueWithIdentifier调用你的segue。
- (void)alertView (UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
// They clicked Yes
if (buttonIndex==1)
{
[self performSegueWithIdentifier:@"YourSegueName" sender:self];
}
}
对于未被调用的clickedButtonAtIndex方法,您是否将视图作为UIAlertView的委托?因此,在您的视图.h文件中,您需要像这样使用UIAlertViewDelegate:
@interface MyViewController : UIViewController <UIAlertViewDelegate>