如何使用导航栏和自定义大小创建 modalVC?
Posted
技术标签:
【中文标题】如何使用导航栏和自定义大小创建 modalVC?【英文标题】:How create modalVC with navBar and custom size? 【发布时间】:2018-03-02 10:41:24 【问题描述】:我需要创建具有自定义大小的自定义 modalVC(例如:CGSize(width: 100, height: 100)
和坐标)。 ModalVC 可能不像 popover(popover 有圆角)。
将有一个导航栏,其中包含“完成”项,用于关闭此 modalVC。
VC 将在其他 VC 中为 UIButton 按下创建。
有我的代码(由其他代码创建,仅存在弹出框):
class ViewController: UIViewController, UIPopoverPresentationControllerDelegate
@IBOutlet var button: UIButton!
@IBAction func buttonPressed(sender: UIButton)
showModalVC()
override func viewDidLoad()
super.viewDidLoad()
func showModalVC()
let modalVC = CustomModalViewController()
modalVC.modalPresentationStyle = .popover
if let modal = modalVC.popoverPresentationController
modal.delegate = self
modal.sourceView = self.view
self.present(modalVC, animated: true, completion: nil)
class CustomModalViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
self.preferredContentSize = CGSize(width: UIScreen.main.bounds.width,
height: UIScreen.main.bounds.height/3)
P.S:我知道如何像 PopOver 一样做到这一点,但不像自定义模式。
【问题讨论】:
到目前为止你做了什么?请向我们提供您的代码 您的最终结果可能会更具体一些,但我相信您正在寻找的是“添加子视图控制器”。请检查一下这个链接:developer.apple.com/library/content/featuredarticles/… 【参考方案1】:试试这个
let VC = self.storyboard!.instantiateViewController(withIdentifier: "Identifier") as! YourViewController
let navController = UINavigationController(rootViewController: VC)
navController.preferredContentSize = CGSize(width: 500, height: 400)
navController.modalPresentationStyle = .formSheet
self.present(navController, animated:true, completion: nil)
【讨论】:
很好,但也许您可以添加有关如何将 modalVC 设置为屏幕底部并将其设置为宽度 = 屏幕宽度的信息?以上是关于如何使用导航栏和自定义大小创建 modalVC?的主要内容,如果未能解决你的问题,请参考以下文章
uniapp实战笔记使用uni-nav-bar自定义顶部状态栏和导航栏