我并没有要求太多,但我会提供很多信息来了解如何在此弹出窗口上获得导航栏:
这是我的故事板:
这是显示弹出窗口的代码:
@IBAction func doButton(_ sender: Any) {
let vc = PopViewController()
vc.preferredContentSize = CGSize(width: 260,height: 300)
vc.modalPresentationStyle = .popover
vc.view.backgroundColor = UIColor.green
if let pres = vc.presentationController {
pres.delegate = (self as UIAdaptivePresentationControllerDelegate)
}
self.present(vc, animated: true)
if let pop = vc.popoverPresentationController {
pop.sourceView = (sender as! UIView)
pop.sourceRect = (sender as! UIView).bounds
pop.backgroundColor = vc.view.backgroundColor
}
}
}
extension ViewController : UIPopoverPresentationControllerDelegate {
func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
return .none
}
}
(感谢@matt,顺便说一句,上面的代码!)
我在Google上搜索过高低,但没有找到我能理解的答案。我尝试在情节提要中添加nav bar
,但没有骰子-唯一接受的元素是prototype cell
中的table view
。
请不要重定向到7年前写的东西-我已经阅读了其中大部分内容,并且现在正在使用Swift。当然,我可能忽略了一个明确的答案,如果真是那样,我会谦虚而and悔。但是与此同时,如果您能得到帮助,我一定会感谢您的帮助!
谢谢!
答案 0 :(得分:1)
将右侧的tableview控制器更改为具有tableViewController根的导航控制器。导航控制器将获得一个标识符:“导航”。
现在您可以更改doButton函数的第一个代码,并保留其余的代码。
@IBAction func doButton(_ sender: Any) {
let vc = self.storyboard?.instantiateViewController(withIdentifier: "navigation") as! UINavigationController
vc.preferredContentSize = CGSize(width: 260,height: 300)
vc.modalPresentationStyle = .popover
vc.view.backgroundColor = UIColor.green
if let pres = vc.presentationController {
pres.delegate = (self as UIAdaptivePresentationControllerDelegate)
}
self.present(vc, animated: true)
if let pop = vc.popoverPresentationController {
pop.sourceView = (sender as! UIView)
pop.sourceRect = (sender as! UIView).bounds
pop.backgroundColor = vc.view.backgroundColor
}
}
最后,您将在弹出窗口中找到导航栏。