目标 - C / Xcode。在 UViewController 中加载子类 UIViews xib [关闭]
Posted
技术标签:
【中文标题】目标 - C / Xcode。在 UViewController 中加载子类 UIViews xib [关闭]【英文标题】:Objective - C / Xcode. Loading a Subclassed UIViews xib within a UViewController [closed] 【发布时间】:2013-09-05 04:20:31 【问题描述】:我创造了一个怪物,它让我很困惑。
我创建了一个 rootViewController 来处理 ios 应用程序的视图和数据。这个控制器有一个 xib,它有助于它的外观。然后,我对自定义 UIView 类进行了子类化,并使用 xib 创建了它的视图。然后我尝试添加 UIView 类及其 xib 以显示在 RootViewControllers 视图中。所以 rootViewController 正在加载它的 NIb,我试图添加这个 UIView 子类并以编程方式安装它的视图。
我的文件层次如下..
mockAppDelegate.h
mockAppDelegate.m
mockViewController.h
mockViewController.m
mockViewController.xib
colorPickerLoad.h
colorPickerLoad.m
colorPickerLoad.xib
Code inside h controller file.
#import <UIKit/UIKit.h>
#import "colorPickerLoad.h"
@interface mockViewController : UIViewController
- (void)createColorPicker;
@end
In the controllers .m file:
@interface mockViewController ()
@end
@implementation mockViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
return self;
- (void)viewDidLoad
[super viewDidLoad];
[self createColorPicker];
- (void)didReceiveMemoryWarning
[ super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
- (void)createColorPicker
colorPickerLoad *newload = [[colorPickerLoad alloc] init];
[self.view addSubview:newload];
[self.view setNeedsDisplay];
@结束
【问题讨论】:
显示您尝试过的代码 【参考方案1】:当 rootViewController 正在加载它的 nib 时你不能这样做,但是你可以在加载完成之后并且在视图真正显示给用户之前实现它。
我真正的意思是在 rootViewController 实现中实现你的 viewDidLoad(如果它还不是一个自定义的视图控制器,你就做一个):
- (void) viewDidLoad
UINib *nib = [UINib nibWithNibName:@"yourSubViewNib" bundle:nil];
// Change the owner with real owner of the nib, if it's not the controller.
// This shall return the list of top views in your nib
NSArray *views = [nib instantiateWithOwner:self options:nil];
【讨论】:
然后我该怎么处理 NSArray *views 之后呢?请详细解释一下 它包含 UIView 对象的数组(通常可能只是您的 nib 设计的 1 个 UIView)。将它添加到作为父视图的 self.view 中。以上是关于目标 - C / Xcode。在 UViewController 中加载子类 UIViews xib [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
目标 - C / Xcode。在 UViewController 中加载子类 UIViews xib [关闭]
不确定将代码放在程序中的啥位置。如何在 XCode 中通过触摸生成圆圈。 (目标-C)