【问题标题】:How create modalVC with navBar and custom size?如何使用导航栏和自定义大小创建 modalVC?
【发布时间】: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 一样做到这一点,但不像自定义模式。

【问题讨论】:

标签: ios swift viewcontroller modalviewcontroller


【解决方案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 设置为屏幕底部并将其设置为宽度 = 屏幕宽度的信息?
猜你喜欢
  • 2012-12-12
  • 2019-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-05
相关资源
最近更新 更多