手动打开故事板视图

时间:2013-01-17 14:36:39

标签: ios objective-c storyboard uialertview

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

当用户点击第一个按钮(“是”)时,如何在故事板上打开其他视图?

3 个答案:

答案 0 :(得分:10)

我可以帮忙:

  1. 拖动视图然后转到Identity Inspector(快捷方式:选项+ apple + 3)。
  2. 选择新拖动的视图,并从标题故事板ID中的标识检查器中提供唯一名称。 //查看图片以供参考 enter image description here
  3. 创建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]; 

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

希望这有帮助。