如何正确使用模态视图控制器?

Posted

技术标签:

【中文标题】如何正确使用模态视图控制器?【英文标题】:How to use Modal View Controllers correctly? 【发布时间】:2016-05-12 05:03:32 【问题描述】:

我有一个选项卡式 Iphone 项目,我试图在其中展示一个模态 segue,但来自多个不同的视图控制器。

本质上,我希望它的功能与 ios 9 for iphone 中的股票音乐应用程序相同。您可以在任何一个不同的标签中,仍然可以查看帐户页面。

Demonstration

第一个问题/问题。 如何在不进行大量转义的情况下模仿这种行为。目前我有 3 个单独的视图,我想从中调用模态转场,但是如何在不重复转场的情况下实现这一点

第二个问题/问题。 如何在不被弃用的情况下关闭模态视图。我已经找到了关于如何做到这一点的 tuts,但他们需要另一个 segue 回到“发送者”视图控制器。

如果只有苹果可以提供一些像样的示例代码来帮助我努力做到这一点......

【问题讨论】:

【参考方案1】:

你可以像下面那样展示和关闭任何视图控制器对象,而无需 segue,

UIViewController *vc = [[UIViewController alloc]init];  // your view controller here

// You can present VC like

[self presentViewController:vc animated:YES completion:^
    // do your task on completion
];


// In your Presented VC you can dissmiss it like

[self dismissViewControllerAnimated:YES completion:^

    //do your task on completion
];

根据评论更新:

你可以像这样实例化故事板,

   SideMenuViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"sideMenu"];

这里的SideMenuViewController 是自定义viewController 类,设置为storyboard 中的viewcontroller。

并确保您已将storyboard Id 设置为来自identity inspector 的身份。这里我的sideMenu 是故事板身份!

所以你可以像这样实例化你的故事板视图控制器,然后像之前提到的那样呈现它

希望这会有所帮助:)

【讨论】:

我感觉有点像迟到了。 Ty 我的朋友,但是我可以看到屏幕截图或您如何设置故事板的内容。我仍然不清楚如何在不从每个导航栏项目中产生大量令人讨厌的模态序列的情况下呈现视图控制器。

以上是关于如何正确使用模态视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7:模态视图控制器状态栏颜色错误,但普通视图控制器正确

在模态视图控制器后面更改视图控制器

在 Swift 中显示和关闭模态视图控制器

从 uitabbarController 视图中关闭模态视图

模态视图导航栏未正确显示

如何正确推送视图控制器