У меня есть контроллер представления, в котором в методе didselect я перехожу к другому контроллеру представления, где у меня есть представление, в котором отображается контроллер представления. Он работает, но не отображается должным образом.
В контроллере представления индикатора в представлении didload я написал функцию, которая встраивает контроллер представления внутри представления. Теперь chartview.indicatorcontroller () поступает из фреймворка, который я установил в своем приложении. Пожалуйста, помогите мне с этой проблемой.
Функция встраивания:
func embed(_ viewController: UIViewController, inView holdingView: UIView) {
//viewController.willMove(toParent: self)
viewController.view.autoresizingMask = [.flexibleHeight, .flexibleWidth]
viewController.view.frame = holdingView.bounds
self.addChild(viewController)
holdingView.addSubview(viewController.view)
viewController.didMove(toParent: self)
}
хочу отображать, как на изображении ниже: скриншот 1
и я получаю этот результат: скриншот
Файл GraphicalToolsViewController:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if tableView == graphicalTableView
{
let obj = toolsArray[indexPath.row]
if obj == "Indicators"
{
guard let popupVC = self.storyboard?.instantiateViewController(withIdentifier: "IndicatorViewDataController") as? IndicatorViewDataController else { return }
popupVC.height = UIScreen.main.bounds.height // set height of popup
popupVC.topCornerRadius = self.topCornerRadius // corner radius of popup
popupVC.presentDuration = self.presentDuration // show duration of popup
popupVC.dismissDuration = self.dismissDuration // dismiss duration of popup
popupVC.popupDelegate = self as? BottomPopupDelegate
popupVC.modalPresentationStyle = .overCurrentContext
self.present(popupVC, animated: true, completion: nil)
}
}
}
Файл IndicatorViewController:
var height: CGFloat?
var topCornerRadius: CGFloat?
var presentDuration: Double?
var dismissDuration: Double?
var shouldDismissInteractivelty: Bool?
@IBOutlet weak var chartView: TradingChartDesignerView!
@IBOutlet weak var indicatorView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
self.embed(chartView.indicatorsController(), inView: chartView)
}
// Oriantation to landscape
override func viewWillAppear(_ animated: Bool) {
AppDelegate.AppUtility.lockOrientation(UIInterfaceOrientationMask.landscapeRight, andRotateTo: UIInterfaceOrientation.landscapeRight)
}
@IBAction func closeIndicatorView(_ sender: UIButton)
{
dismiss(animated: true)
}
// You can override the desired variable to change appearance
override var popupHeight: CGFloat { return height ?? CGFloat(UIScreen.main.bounds.height) }
override var popupTopCornerRadius: CGFloat { return topCornerRadius ?? CGFloat(10) }
override var popupPresentDuration: Double { return presentDuration ?? 1.0 }
override var popupDismissDuration: Double { return dismissDuration ?? 1.0 }
// override var popupShouldDismissInteractivelty: Bool { return shouldDismissInteractivelty ?? true }
override var popupDimmingViewAlpha: CGFloat { return 0.5 }