UIViewController не является представлением, но управляет представлением.Если ваш класс DataTagViewController расширяет UIViewController, то вам нужно добавить его представление, а не сам класс:
[theMap addSubView:dataTag.view];
Кроме того, у вас есть файл DataTagViewController.xib, в котором есть ваше представление?Если вы этого не сделаете, вам нужно будет создать его и использовать метод UIViewController
s initWithNibName:bundle
.В противном случае вам придется реализовать метод loadView
вместо предоставления собственного представления с помощью кода.
Редактировать
Ваша функция инициализации использует имя вашегокласс как переменная.Это, вероятно, не сработает.Используйте сигнатуру по умолчанию:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])
{
}
}
Если вы не делаете ничего, кроме функции init, вам не нужно реализовывать этот метод.Вам достаточно оператора alloc / init.
Для хорошего урока прочитайте руководство View Controller Programming в документации.