- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
HeadViewController *headViewController = [[HeadViewController alloc] initWithNibName:@"HeadViewController" bundle:nil];
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 120)];
[view addSubview:headViewController.vew];
[self.view addSubview:view];
}
Run Code Online (Sandbox Code Playgroud)
HeadViewController.h:
@interface HeadViewController : UIViewController
{
IBOutlet UIView *view;
}
@property (nonatomic, retain)IBOutlet UIView *view;
@end
Run Code Online (Sandbox Code Playgroud)
然后我将视图连接到文件的所有者.
我看不到headViewController.view
.
mar*_*wer 15
首先,您不需要view
在HeadViewController
类中定义插座.它自动从UIViewController
超类继承.
然后,我建议您直接将视图添加HeadViewController
到当前视图中.例如.
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
HeadViewController *headViewController = [[HeadViewController alloc] initWithNibName:@"HeadViewController" bundle:nil];
headViewController.view.frame = CGRectMake(0, 0, 320, 120);
[self.view addSubview:headViewController.view];
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您使用ARC(自动引用计数),则headViewController
该viewDidLoad
方法可能会在方法结束后取消分配.将该实例分配给您当前正在显示的控制器中的局部变量是方便的(并且我说它是必须的).这样,您可以在以后需要时处理其视图的组件,实例将被保留,其他所有内容都将完美运行.你应该有类似的东西:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.headViewController = [[HeadViewController alloc] initWithNibName:@"HeadViewController" bundle:nil];
headViewController.view.frame = CGRectMake(0, 0, 320, 120);
[self.view addSubview:headViewController.view];
}
Run Code Online (Sandbox Code Playgroud)
和
@interface MyController ()
@property (nonatomic, strong) HeadViewController *headViewController;
@end
Run Code Online (Sandbox Code Playgroud)
在.m
类实现文件开头的隐藏接口定义中.
归档时间: |
|
查看次数: |
30771 次 |
最近记录: |