如何将视图添加到子视图?

时间:2013-08-27 12:25:20

标签: ios objective-c uiview

我尝试在一个视图中显示其他视图,但它不起作用

我的观点

一般

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

第二

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

第三

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

需要在第二个显示我的第三个视图,但是当我在第二个视图中显示时,在viewDidload中

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

最后一行告诉我:

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

并粉碎

请帮帮我:)。

3 个答案:

答案 0 :(得分:1)

您只能添加UIView类型的布局或从UIView继承的布局,因此请更改下面给出的代码。

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

答案 1 :(得分:1)

变化

[self.view addSubview:tableVC];

[self.view addSubview:tableVC.view];

答案 2 :(得分:1)

您需要在 .h 文件

中创建这样的属性
@property (strong, nonatomic)MyViewNavigationController *tableVC;

然后在 .m 文件

中执行此操作
tableVC = [[MyViewNavigationController alloc] initWithTableSize:CGSizeMake(380, 600)];
tableVC.delegate = self;
[self.view addSubview:tableVC.view];