【问题标题】:iOS Present Full Screen view on UIModalTransitionStylePartialCurl View ControlleriOS 在 UIModalTransitionStylePartialCurl 视图控制器上呈现全屏视图
【发布时间】:2013-01-05 05:09:15
【问题描述】:

为 iPhone 开发,我有一个主视图控制器,它使用 UIModalTransitionStylePartialCurl 的转换呈现第二个“共享”视图控制器。从 UI 的角度来看,这些似乎是有道理的,因为它可以只占用一点空间,在底部显示一些共享按钮,同时让用户保持在主视图上。此时,如果我有一个按钮启动第三个视图(在本例中为 MFMailComposeViewController),邮件程序视图将出现在前一个视图的卷曲下方,使其无法使用。

我希望第三个 Mail 视图能够爆发并完全呈现,这不可能吗?

如果我在这里搞砸了 Apple UI 标准或其他什么,请随意击落我。

【问题讨论】:

    标签: iphone ios navigation viewcontroller


    【解决方案1】:

    在 curl 下关闭 vc 后,尝试从 presentingViewController 呈现邮件 vc。这种方法看起来像这样:

    在 FirstVC(触发 curl 过渡的那个)中:

    FirstVC.h

    - (void)presentMail;
    

    FirstVC.m

    - (void)presentMail {
        // the code to present the mail UI, moved here from the SecondVC under the curl
    }
    

    SecondVC.m

    - (IBAction)userPressedTheMailButton:(id)sender {
    
        [self dismissViewControllerAnimated:YES completion:^{
            [self.presentingViewController presentMail];
        }];
    }
    

    【讨论】:

    • 不幸的是,这给了我一个警告:尝试在视图不在窗口层次结构中的 上呈现 !但我会说在这种情况下我没有使用navigationController,这是让我搞砸的原因吗?这里的命名很奇怪,“to present”(命令)和“the preSent”有点令人困惑。我猜“presentingViewController 指的是呈现的‘自我’,而 presentViewController 是呈现的命令?
    • 嗯。抱歉,它没有用。不过,这是一个奇怪的错误。没错,presentingViewController 是指呈现当前视图控制器的视图控制器(在 sdk 中,present 是动词,意思是让用户可见)。为什么呈现 VC 的视图不在层次结构中?你能把邮件代码暂时移到第一个vc中,看看它是否在那里工作?
    • 希望如此。我的回答背后的想法是让第一个 VC 做邮件演示。 presentingViewController 只是一个捷径。如果它适用于第一个 vc,那么您只需要一种方法从 curl 下的 vc 传达它。当它按下按钮时,自行关闭并提醒最上面的那个。
    • 另外一点 - 我认为您尝试实现的 UI 通常是使用 UIActionSheet 完成的。
    • 一些有趣的点。我可以用 UIActionSheet 做到这一点吗?我想我可以用活动视图控制器来完成它,但这并不是我想要的美学。我不确定我是否可以在不关闭当前控制器的情况下将其实际放在呈现控制器上——这可能还不错。我会玩得更久一点。
    猜你喜欢
    • 2016-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    相关资源
    最近更新 更多