2017-05-06 77 views
0

请帮忙解决这个问题。 我有一个viewcontroller与两个容器视图,每个指向一个单独的视图控制器。如何防止imageView在ContainerView中的导航栏下延伸

第一个viewcontroller应该显示一个图像,但顶部被导航栏截断。

我没有选中“延伸到顶部边缘”。

我的两个容器视图的viewcontrollers几乎是空的。

任何想法?

class ViewController: UIViewController { 

var teamMember:TeamMember! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    if let name = teamMember.firstName { 
     title = name 
    } 
    navigationController?.view.setNeedsLayout() 
} 


override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if (segue.identifier == "PictureViewController") { 
     var destination = segue.destination as? UINavigationController 
     var vc = destination?.topViewController as? PictureViewController 
     vc?.teamMember = teamMember 
    } 

    if (segue.identifier == "BioContentViewController") { 
     var vc = segue.destination as? BioContentViewController 
     vc?.teamMember = teamMember 
    } 
} 

编辑:我还设置自定义导航栏的项目,我不知道如果这会引起一个问题

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if (segue.identifier == "PictureViewController") { 

     let backItem = UIBarButtonItem() 
     backItem.title = "Meet The Team" 
     navigationItem.backBarButtonItem = backItem 
    } 

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if (segue.identifier == "teamMemberDetailView") { 

     let backItem = UIBarButtonItem() 
     backItem.title = "Meet The Team" 
     navigationItem.backBarButtonItem = backItem 

     var vc = segue.destination as? TeamMemberDetailViewController 
     vc?.teamMember = teamArray[selectedTeamMemberIndex] 
    } 
} 

storyboard

+0

你在'UIImageView'上使用了什么约束?它是与“topLayoutGuide”绑定的吗? –

+0

在'viewDidAppear'中可以打印缺失视图的帧。这将有助于调试 – user1046037

+0

@ScottThompson没有约束的问题.. – makthrow

回答

0

领带的ImageView顶部布局指南。

enter image description here

如果你希望你的图片导航栏过来,你可以把它添加到一个UIWindow。

+0

我想我设置了这个?但没有差别 http://imgur.com/a/5VGId – makthrow

0

尝试将视图控制器的automaticallyAdjustScrollViewInset设置为false

我认为这个blog将帮助你使用容器视图控制器。