我有一个使用Storyboard的应用程序。在视图上有一个AlertViewDialog。
当用户点击第一个按钮(“是”)时,如何在故事板上打开其他视图?
答案 0 :(得分:10)
我可以帮忙:
创建viewController的SecondViewController类(.h& .m)子类。
然后从警报视图代码(正如您在单击YES时所说)
粘贴下面提到的代码
SecondViewController *svc =[self.storyboard instantiateViewControllerWithIdentifier:@"vinay"];
[svc setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self presentViewController:svc animated:YES completion:nil];
如果出现任何问题,请与我们联系。
答案 1 :(得分:5)
这可能会有所帮助:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
ClassNameViewController *viewController = (ClassNameViewController *)[storyboard instantiateViewControllerWithIdentifier:@"viewIdentifierOnStoryboard"];
[self presentModalViewController:viewController animated:NO];
答案 2 :(得分:0)
您需要做的第一件事是设置UIAlertView
代理人为此UIAlertViewDelegate
添加@interface
所以它看起来像
@interface myClass : super <UIAlertViewDelegate>
// super could be anything like `UIViewController`, etc
@end
然后在@implementation
中您可以添加类似
@implementation myClass
........... Some code
- (IBAction)someActionMethod:(id)sender
{
UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:nil
message:@"Would you like to move on?"
delegate:self
cancelButtonTitle:@"No"
otherButtonTitles:@"Yes", nil];
[myAlertView show];
// [myAlertView release]; Only if you aren't using ARC
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
switch(buttonIndex) {
case 1:
SecondViewController *svc =[self.storyboard instantiateViewControllerWithIdentifier:@"secondViewController"];
[svc setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
// [self presentViewController:svc animated:YES]; // Deprecated in iOS 6.0
[self presentViewController:svc animated:YES completion:nil]; // Introduced in iOS 5.0
break;
default:
break;
}
}
@end
请记住在故事板中设置唯一标识符。您可以转到.storyboard
并在Identity Inspector(选择第三个)中执行此操作,您可以设置Storyboard ID
这是您需要与{{1}中的内容匹配的内容所以在上面的情况下,它将是instantiateViewControllerWithIdentifier
。就这么简单。
请记住在完成后忽略此视图,您需要使用
"secondViewController"
以上实际上已在iOS 6.0中弃用,但您可以使用
[self dismissModalViewControllerAnimated:YES];
除了在最后添加完成块之外,它会做同样的事情。
希望这有帮助。