【问题标题】:Sub View's frame is updating after presenting the view Controller呈现视图控制器后,子视图的框架正在更新
【发布时间】:2017-01-25 09:11:58
【问题描述】:

我在我的视图控制器中使用视图控制器的视图作为子视图。一切都很好,直到我没有从可见视图控制器中展示一个新的视图控制器。 关闭我的视图控制器的视图控制器框架(添加为子视图)后发生了变化。所有视图控制器视图都是使用自动布局制作的。

我尝试在 viewDidLayoutSubvieww 中更新子视图的框架。

请告诉我如何解决这个问题,谢谢。

编辑:

我正在从子视图中呈现这样的视图控制器

// Show report abuse view 
let vcReportAbuse = ReportAbuseViewController(nibName:"ReportAbuseViewController‌​", bundle: nil) 
    vcReportAbuse.target = self 
    vcReportAbuse.info[ParamName.AbusedUserID.rawValue] = userProfileModal?.uId 
let nav = UINavigationController(rootViewController: vcReportAbuse) // 
    nav.modalTransitionStyle = .CrossDissolve
self.presentViewController(nav, animated: true, completion: { () -> Void in }) 

【问题讨论】:

  • 你如何展示viewController?
  • @RashwanL 我正在从子视图中呈现这样的视图控制器 // 显示报告滥用视图 let vcReportAbuse = ReportAbuseViewController(nibName:"ReportAbuseViewController", bundle: nil) vcReportAbuse.target = self vcReportAbuse.info [ParamName.AbusedUserID.rawValue] = userProfileModal?.uId let nav = UINavigationController(rootViewController: vcReportAbuse) // nav.modalTransitionStyle = .CrossDissolve self.presentViewController(nav, animated: true, completion: { () -> Void in })
  • 尝试使您呈现的视图控制器 alpha 透明,并使用 Xcode 模拟器中的慢速动画切换查看子视图下方发生的情况。和/或如果您已经在 Xcode 8 中工作,您还可以在应用程序在模拟器中运行时使用魔术 Debug View Hieararchy Button 检查您的视图控制器布局。 developer.apple.com/library/content/documentation/…

标签: ios swift autolayout ios-autolayout size-classes


【解决方案1】:

viewDidLoad 方法中设置您的视图框架...

override func viewDidLoad() {

    super.viewDidLoad()
    self.view.frame = UIScreen.mainScreen().bounds
}

【讨论】:

    【解决方案2】:

    谢谢大家 此问题已解决。我刚刚从正在呈现的新视图控制器更新了视图控制器对象。首先,我是从子视图中展示它的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-09
      • 2016-06-12
      • 2014-11-17
      • 1970-01-01
      • 2017-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多