iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – 在UIViewController的主视图中加载自定义UIView大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经将UIView子类化并创建了一个NIB来控制我的应用程序的主要逻辑.

希望视图可以很好地扩展,我想将它用于iPhone和iPad版本的应用程序.

在iPhone上,视图将覆盖全屏.在iPad上,视图将仅覆盖屏幕的一部分.

我已经读过你不应该使用UIViewControllers来控制部分屏幕.所以,我试图使用IB将自定义UIView嵌入到主UIViewController的视图中.

如何才能做到这一点?

解决方法

经过大量的反复试验后,我找到了一个基于 question中解释的方法解决方案,由 Brian Webster回答.

解决方案最初建议用于Cocoa环境.我希望它在iOS环境中也有效.

>使用NIB文件创建主视图控制器.在NIB中,文件所有者应该对应于主视图控制器的类.
>使用NIB文件创建自定义视图控制器.在此NIB中,文件所有者应对应于自定义视图控制器的类.
>在主视图控制器类中创建自定义视图控制器属性.
>在主视图控制器类中创建UIView属性.它将保存您的自定义视图控制器的视图.将其定义为IBOutlet,因此可以在NIB中进行链接.
>在主视图控制器的NIB中删除UIView.将其链接到主视图控制器的视图IBOutlet.它将用作自定义视图的占位符.
>在主视图控制器的viewDidLoad方法中,加载自定义视图控制器NIB,确定自定义视图的帧大小并在主视图控制器的视图中复制视图.

这是一些代码

> MainViewController.h

@interface MainViewController : UIViewController {
  CustomViewController *customViewController;
  UIView *customView;
}
@property (nonatomic,retain) CustomViewController *customViewController;
@property (nonatomic,retain) IBOutlet UIView *customView;
@end

> MainViewController.m

- (void)viewDidLoad {
  CustomViewController *controller = [[CustomViewController alloc] initWithNibName:@"CustomViewController" bundle:nil];
  self.customViewController = controller;
  [controller release];
  customViewController.view.frame = customView.frame;
  customViewController.view.autoresizingMask = customView.autoresizingMask;
  [customView removeFromSuperview];
  [self.view addSubview:customViewController.view];
  self.customView = customViewController.view;
  [super viewDidLoad];
}

大佬总结

以上是大佬教程为你收集整理的objective-c – 在UIViewController的主视图中加载自定义UIView全部内容,希望文章能够帮你解决objective-c – 在UIViewController的主视图中加载自定义UIView所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: