Панель навигации на iPhone поповер - PullRequest
0 голосов
/ 14 сентября 2018

Я не прошу многого из жизни, но я бы дал много, чтобы узнать, как получить панель навигации для этого поповера:

enter image description here

Вот моя раскадровка:

enter image description here

А вот мой код, представляющий всплывающее окно:

    @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, BTW, за приведенный выше код!)

Я искал в Google все выше и ниже, но не нашел ответа, который мог бы понять.Я пытался добавить nav bar в раскадровку, но без кубиков - единственный элемент, который бы принял это, был prototype cell в table view.

Пожалуйста, не перенаправляйте на что-то написанное 7 летназад - я уже прочитал большинство из них, и сейчас я использую Swift.Конечно, я мог упустить четкий ответ, и я буду смиренным и сокрушенным, если это так.Но между тем, я бы очень признателен за помощь, если бы вы ее получили!

Спасибо!

1 Ответ

0 голосов
/ 14 сентября 2018

Измените свой правильный контроллер табличного представления на контроллер навигации с корнем tableViewController.Контроллер навигации получает идентификатор: «навигация».

right nav controller

enter image description here

Теперь вы можетеизмените первый код функции 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
    }
}

и, наконец, вы получите панель навигации в вашем поповере.

...