2013-08-27 4 views
0

Я пытаюсь показать в один вид другой, но он не работаеткак добавить представление в подвью?

мои взгляды

Общие

@interface BaseViewController : UIViewController<UIPopoverControllerDelegate, DatePickerDelegate, AddScriptPopoverViewDelegate> 

2-й

@interface MyViewController : BaseViewController<UniversalViewNavigationDelegate, StarsSizeViewDelegate, SelectPopoverViewDelegate, MyTableViewDelegate> 

3rd

@interface MyViewNavigationController : UIViewController<UITabBarDelegate, UISearchBarDelegate, MyTableViewDelegate> 

в необходимости показать свой третий вид в секунду, но когда я пытаюсь в секунду, в viewDidload

MyViewNavigationController *tableVC = [[MyViewNavigationController alloc] initWithTableSize:CGSizeMake(380, 600)]; 
tableVC.delegate = self; 
[self.view addSubview:tableVC]; 

последняя строка saing меня:

Incompatible pointer types sending 'MyViewNavigationController *__strong' to parameter of type 'UIView *' 

и раздавить

Помощь мне нравится :)

+0

Вы, вероятно, не хотите слышать это, но если вы собираетесь показывать вид из других контроллеров, как подвиды, вы действительно должны использовать контроллеры просмотра детей. Попробуйте найти «Контроллеры контейнеров». – Abizern

ответ

1

изменение

[self.view addSubview:tableVC]; 

в

[self.view addSubview:tableVC.view]; 
+1

А как насчет сохранения ссылки на контроллер вида? Несомненно, это повлияет на время жизни рассматриваемого в нем взгляда? – trojanfoe

+0

Справа. Я бы сохранил VC как свойство с сильным или сохранить в любом случае. – Chris

1

Вы можете добавить только макет типа UIView или макет, унаследованный от UIView, поэтому измените код, как указано ниже.

MyViewNavigationController *tableVC = [[MyViewNavigationController alloc] initWithTableSize:CGSizeMake(380, 600)]; 
tableVC.delegate = self; 
[self.view addSubview:tableVC.view]; 
+1

А как насчет сохранения ссылки на контроллер вида? Несомненно, это повлияет на время жизни рассматриваемого в нем взгляда? – trojanfoe

1

Вам нужно сделать свойство, как это в .h файл

@property (strong, nonatomic)MyViewNavigationController *tableVC; 

, а затем сделать это в .m файла

tableVC = [[MyViewNavigationController alloc] initWithTableSize:CGSizeMake(380, 600)]; 
tableVC.delegate = self; 
[self.view addSubview:tableVC.view]; 
Смежные вопросы