#ios #swift #swift3 #uipopovercontroller
#iOS #swift #swift3 #uipopovercontroller
Вопрос:
В настоящее время я пытаюсь отобразить представление, которое я создал в xib, на своем экране при нажатии кнопки. Я хочу, чтобы это отображалось в стиле формы в середине экрана. Однако на данный момент я просто пытался заставить его отображаться, прежде чем беспокоиться о размещении.
Вот представление, которое я создал в xib
Я назначил и создал для него класс «CallNowView», который пока выглядит примерно так.
import Foundation
import UIKit
class CallNowView: UIViewController{
@IBOutlet var btnCancel: UIButton!
@IBOutlet var btnCall: UIButton!
@IBAction func btnCall_pressed(_ sender: AnyObject) {
}
@IBAction func btnCancel_pressed(_ sender: AnyObject) {
}
}
То, что я пытался сделать в представлении, в котором я хочу, чтобы отображался xib, заключается в следующем
@IBAction func btnRSRCall_pressed(_ sender: AnyObject) {
if (callNowView == nil)
{
callNowView = CallNowView(nibName: "CallNow", bundle: nil)
}
if(UIViewController.responds(to: #selector(getter: popoverPresentationController))){
callNowView.modalPresentationStyle = .formSheet
callNowView.popoverPresentationController?.sourceView = btnCall;
callNowView.popoverPresentationController?.sourceRect = btnCall.bounds;
callNowView.popoverPresentationController?.permittedArrowDirections = .any
}
else {
//no support ios7 device, either ipad or iphone
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.phone)
{
//present standard controller for ios7, iphone,
self.present(callNowView, animated: true, completion: nil)
}
else
{
//present s popupcontroller for ios7, ipad
let popover = UIPopoverController.init(contentViewController: callNowView)
popover.present(from: btnCall.bounds, in: btnCall, permittedArrowDirections: .any, animated: true)
}
}
}
Когда я запускаю код, он выходит из строя в этой строке self.present(callNowView, animated: true, completion: nil)
с сообщением об ошибке terminating with uncaught exception of type NSException
Я надеюсь, что кто-нибудь может мне помочь с этим
Комментарии:
1. Вы хотите представить его как всплывающее окно для модальной таблицы форм? Это два разных стиля представления.
2. @Paulw11 на самом деле, теперь, когда вы упомянули об этом, возможно, в этом случае модальный formsheet был бы лучше