如何用一个视图控制器呈现视图控制器?

Posted

技术标签:

【中文标题】如何用一个视图控制器呈现视图控制器?【英文标题】:How to present view controller with one view controller alreadly be presented? 【发布时间】:2017-09-15 03:18:43 【问题描述】:

就像您使用 ios 原生邮件应用程序编写新邮件一样。 或者您使用 *** iOS 应用程序提出新问题。

你有什么想法吗?

【问题讨论】:

从最顶端的视图控制器中显示新的视图控制器。 你有没有尝试过任何代码? 【参考方案1】:

尝试使用辅助方法展示您的新 ViewController

extension UIApplication 
  class func topViewController(base: UIViewController? = (UIApplication.sharedApplication().delegate as! AppDelegate).window?.rootViewController) -> UIViewController? 
    if let nav = base as? UINavigationController 
      return topViewController(base: nav.visibleViewController)
    
    if let tab = base as? UITabBarController 
      if let selected = tab.selectedViewController 
        return topViewController(base: selected)
      
    
    if let presented = base?.presentedViewController 
      return topViewController(base: presented)
    
    return base
  

从你的 ViewController 中调用上面的辅助方法

UIApplication.topViewController().present(vc2, animated: true, completion: nil)

【讨论】:

谢谢!找到顶视图控制器并用它来呈现另一个。我知道这种方式,但这不是我想要的。

以上是关于如何用一个视图控制器呈现视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章

如果当前视图控制器被呈现并推送,如何展开到正确的视图控制器?

在关闭作为模型视图本身的视图 1 时呈现视图(全屏)控制器

如何用 UISlider 控制 UIView 的 Alpha?最新帖子

编辑时如何用导航控制器中的另一个 UIBarButtonItem 替换后退按钮?

在动画呈现控制器视图的同时动画呈现控制器视图

Swift - TableView的协议代理无法正常工作 - 以模态呈现