Tangram self.view, понижающий до TGMapView.Где назначается self.view? - PullRequest
0 голосов
/ 26 ноября 2018

В текущем демо-приложении Tangram , приведенный ниже метод определен в MapViewController.m

- (void)viewDidLoad
{
    [super viewDidLoad];

    TGMapView *mapView = (TGMapView *)self.view;
    mapView.mapViewDelegate = self;
    mapView.gestureDelegate = self;
    self.locationManager = [[CLLocationManager alloc] init];
    self.locationManager.delegate = self;
}

Первое, что происходит после super, - это снижение рейтинга self.view.быть типа TGMapView.Два вопроса, которые могут иметь связанные ответы:

  1. Как правило, где self.view присваивается значение?

  2. С каким методом initпредставление или пользовательский вид создан?


После дальнейших исследований я обнаружил this на документах Apple.Кажется, подразумевается, что пользовательский UIView должен иметь эти элементы.Мне не понятно, зачем нужны два разных init, но я могу предположить, что apple использует один или оба для инициализации представления.

1 Ответ

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

Существует несколько способов указать представление для контроллера представления (Подробнее см. В разделе «Управление представлениями» Документация UIViewController ):

  • В раскадровке
  • В nib-файле
  • Переопределение метода loadView контроллера и явное создание там представления.

Демонстрационное приложение, с которым вы связались, использует раскадровки для создания пользовательского интерфейса и пользовательский класс для представления.указано в Main_iPhone.storyboard (и Main_iPad.storyboard).

...