【问题标题】:Presenting and dismissing a modal view in ios 7在 ios 7 中呈现和关闭模式视图
【发布时间】:2013-10-28 18:54:45
【问题描述】:

我有一个视图控制器,上面有一个按钮。该按钮是隐私政策。当它被点击时,它会转到正确的 IBAction 并创建隐私控制器。

 - IBAction ...
{
    PrivacyPolicyViewController *privacy = [[PrivacyPolicyViewController alloc] init];
    .....
}

我想创建一个隐私控制器的模式视图,该视图具有一个向上动画的 UIWebView 和一个用于在 ios 7 中关闭它的后退按钮。我在网上看到的所有方式都是 ios 6 并且似乎已被弃用。

【问题讨论】:

    标签: ios uiwebview ios7 modalviewcontroller


    【解决方案1】:

    如果您使用 Storyboard,您也可以使用 segue 来呈现模态视图控制器,并以编程方式进行。

    1. 在您的故事板中,按住 ctrl + 将文件所有者图标从开始视图下方的栏中的文件所有者图标拖动到您要以模态方式呈现的视图,松开并选择“模态”。
    2. 单击 segue 图标,然后在属性检查器中为其指定一个标识符,例如“toNewView”。
    3. 在您的起始视图控制器的 .m 文件中,使用此代码执行模态转场:[self performSegueWithIdentifier:@"toNewView" sender:self];

    这是一种非常干净的方法,因为您不必导入 .h 文件来实例化 presentViewController 方法的第二个控制器对象。

    要关闭它,您只需使用 unwind segue

    【讨论】:

    • 谢谢!有什么方法可以从 ViewController segued-to 访问发件人?
    • @RubenMartinezJr。您实际上会在进行转场之前确定要转场的位置。使用prepareForSegue 方法,并在其中使用if ([segue identifier] isEqualToString:@"someView"]) 进行条件操作,具体取决于您在哪里进行。
    【解决方案2】:
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    taskQueeDetails *privacy = (taskQueeDetails*)[storyboard instantiateViewControllerWithIdentifier:@"taskQueeDetails"];
    
    // Present the modal
    [self presentViewController:privacy animated:YES completion:nil];
    

    使用代码并更改字符串 instantiateViewControllerWithIdentifier:@"taskQueeDetails"]; 它会正常工作

    【讨论】:

      【解决方案3】:

      [self presentmodalviewcontroller:vc];弃用

      你可以试试

      [self presentViewController:viewController animated:YES completion:nil];
      

      它会为你工作..

      【讨论】:

        【解决方案4】:

        使用这样的东西:

        // assuming your controller has identifier "privacy" in the Storyboard
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
        PrivacyPolicyViewController *privacy = (PrivacyPolicyViewController*)[storyboard instantiateViewControllerWithIdentifier:@"privacy"];
        
        // present
        [self presentViewController:privacy animated:YES completion:nil];
        
        // dismiss
        [self dismissViewControllerAnimated:YES completion:nil];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-09-20
          • 2010-12-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-12
          相关资源
          最近更新 更多