6

我有一个使用 Storyboard 的应用程序。在视图上有一个 AlertViewDialog。

当用户单击第一个按钮(“是”)时,如何在 Storyboard 上打开另一个视图?

4

3 回答 3

10

我是这可以帮助:

  1. 将视图拖入然后转到身份检查器(快捷方式:option+apple+3)。
  2. 选择新拖动的 View 并从标题 Storyboard ID 中的标识检查器中指定唯一名称。//查看图片以供参考 在此处输入图像描述

创建 viewController 的 SecondViewController 类 (.h &.m) 子类。

然后从警报视图代码(正如您在单击“是”时所说的那样)

粘贴下面提到的代码

SecondViewController *svc =[self.storyboard instantiateViewControllerWithIdentifier:@"vinay"];
        [svc setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
        [self presentViewController:svc animated:YES completion:nil];

如果出现任何问题,请告诉我。

于 2013-01-17T15:27:13.137 回答
5

愿这有帮助:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
ClassNameViewController *viewController = (ClassNameViewController *)[storyboard instantiateViewControllerWithIdentifier:@"viewIdentifierOnStoryboard"];
[self presentModalViewController:viewController animated:NO];
于 2013-01-17T14:41:05.577 回答
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的身份检查器(选择第三个)来执行此操作,您可以设置Storyboard IDthis is what you will need to match in instantiateViewControllerWithIdentifierso in the case in above it would be "secondViewController". 就是这么简单。

完成后请记住关闭此视图,您将需要使用

       [self dismissModalViewControllerAnimated:YES]; 

以上内容实际上已在 iOS 6.0 中被弃用,但您可以使用

       [self dismissModalViewControllerAnimated:YES completion:nil];

除了在最后添加一个完成块之外,它做同样的事情。

希望这可以帮助。

于 2013-01-17T15:55:07.243 回答