【问题标题】:PUSH to ViewController from other viewcontroller which is presented as popover - WITHOUT STORY BOARD从显示为弹出框的其他视图控制器推送到视图控制器 - 没有故事板
【发布时间】:2021-01-30 15:05:05
【问题描述】:

我没有在我的项目中使用 StoryBoard。我已经将一个视图控制器呈现为 popOver 样式。

let vcOne                               = ViewControllerOne()
    vcOne.showCorrectionFactor          = true
    vcOne.modalPresentationStyle        = .popover
    let pop                             = vcOne.popoverPresentationController
    pop?.sourceView                     = self.view
    pop?.sourceRect                     = sender.frame
    vcOne.preferredContentSize          = CGSize(width: 400, height: 500)
    self.present(vcOne, animated: true, completion: nil)

现在我想从 ViewControllerOne() 导航到其他视图控制器,并在此弹出窗口中使用。

我是这样做的

let vc = PairViewController()
self.navigationController?.pushViewController(vc, animated: true)

但是self.navigationController? 的值为零。如果没有故事板,我怎么能做到这一点。

【问题讨论】:

  • 第二个代码 sn-p 中的self 是什么? ViewControllerOne?

标签: ios swift uinavigationcontroller pushviewcontroller


【解决方案1】:

您没有将ViewControllerOne 嵌入到UINavigationController 中,所以self.navigationController 当然是nil

这样做:

// embed it!
let navController                   = UINavigationController(rootViewController: vcOne)
// get the popover presentation controller from the navigation controller!
let pop                             = navController.popoverPresentationController
pop?.sourceView                     = self.view
pop?.sourceRect                     = sender.frame
vcOne.preferredContentSize          = CGSize(width: 400, height: 500)
// present navController rather than vcOne!
self.present(navController, animated: true, completion: nil)

【讨论】:

  • 感谢@Sweeper。这是有效的。但是导航动画并不流畅。有什么想法吗?
  • @TheDevInMe 嗯,这很奇怪......你是在 iPad 模拟器上做的吗? iPad 模拟器有时在我的 Mac 上相当滞后。所以也许可以在物理设备上尝试一下。除此之外,我不知道。
  • 否 @Sweeper 我正在 iPad 中检查它。不过谢谢你的回答
  • @TheDevInMe 尝试提出一个新问题。记得提供minimal reproducible example
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-01
  • 2012-02-12
相关资源
最近更新 更多