我尝试在一个视图中显示其他视图,但它不起作用
我的观点
一般
@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 *'
并粉碎
请帮帮我:)。
答案 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];