Как получить доступ к IBOutlet в классе UITableViewController, если IBOutlet находится в классе UIViewController - PullRequest
0 голосов
/ 05 ноября 2018

enter image description here

 class AClass: UIViewController,CLLocationManagerDelegate,MKMapViewDelegate {

        @IBOutlet var mapKitView: MKMapView!

        }

    class BClass: UITableViewController {

    var localAClass=AClass()
    localAClass.mapKitView.mapType=MKMapType.standard 

    }

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

1 Ответ

0 голосов
/ 05 ноября 2018

В ClassB вам нужно использовать UIStoryboard instantiateViewController(withIdentifier:) для создания экземпляров IBOutlets.

let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let viewController = 
storyboard.instantiateViewController("AClassIdentifier") as! 
AClass

И, тем не менее, представления IBOutlets не создаются, пока viewDidLoad () для этого класса. Вашему ClassA понадобится второе свойство, такое как mapType, а ClassB устанавливает это свойство вместо непосредственно в представлении. Затем в ClassA viewDidLoad вы можете установить фактический mapView на основе этого сохраненного свойства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...