Tangram self.view понижает до TGMapView. Где присваивается self.view?

В текущем демонстрационном приложении 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 создается представление или пользовательское представление?


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

1 ответ

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

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

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

Другие вопросы по тегам