0

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

我的看法

一般的

@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 *'

并粉碎

请帮帮我 :)

4

3 回答 3

1

您需要在.h文件中创建这样的属性

@property (strong, nonatomic)MyViewNavigationController *tableVC;

然后在.m文件中执行

tableVC = [[MyViewNavigationController alloc] initWithTableSize:CGSizeMake(380, 600)];
tableVC.delegate = self;
[self.view addSubview:tableVC.view];
于 2013-08-27T12:44:45.067 回答
1

您只能添加 UIView 类型的布局或继承自 UIView 的布局,因此更改代码如下。

MyViewNavigationController *tableVC = [[MyViewNavigationController alloc] initWithTableSize:CGSizeMake(380, 600)];
tableVC.delegate = self;
[self.view addSubview:tableVC.view];
于 2013-08-27T12:28:10.697 回答
1

改变

[self.view addSubview:tableVC];

[self.view addSubview:tableVC.view];
于 2013-08-27T12:28:29.070 回答