【发布时间】:2015-07-21 09:53:41
【问题描述】:
我正在尝试找到一种方法来将具有 IBOutlets 的视图控制器初始化为我在 XIB 中创建的自定义视图。
这是我初始化类的代码:
MyContentViewController *pageContentViewController = [[MyContentViewController alloc] init];
self.pageContent = pageContentViewController;
[pageContentViewController view];
MyContentViewController 具有以下属性:
@interface MyContentViewController : UIViewController
@property (nonatomic, weak) IBOutlet MyContentView *topLeftView;
@property (nonatomic, weak) IBOutlet MyContentView *topRightView;
@property (nonatomic, weak) IBOutlet MyContentView *bottomLeftView;
@property (nonatomic, weak) IBOutlet MyContentView *bottomRightView;
在 MyContentViewController xib 中,我有 4 个视图,我已将它们设置为 MyContentView,并将上面的 IBOutlet 与情节提要中的视图挂钩。
自定义视图定义如下:
#import <UIKit/UIKit.h>
@interface MyContentView : UIView
@property (nonatomic, strong) IBOutlet UILabel *labelView;
@end
但是,当我运行应用程序时,我得到了在 MyContentViewController xib 中添加的 4 个视图。但是,它们都没有显示来自自定义 UIView 的 UILabel。
我在 MyContentView 中添加了以下内容:
- (void)awakeFromNib {
NSLog(@"VIEW AWAKE");
}
这会被打印出来,以便加载视图。但是,我怎样才能让它们使用 4 个 IBOutlets 显示。
这是应用视图运行的图片。 4 个视图上没有标签:
【问题讨论】:
-
嗨,你可以试试这个语句:MyContentViewController *vc = [[MyContentViewController alloc] initWithNibName:@"YouXib" bundle:nil];
-
感谢您的评论。但是,它正在加载问题所在的 MyContentView。激光链接包含了答案。
标签: ios objective-c uiview iboutlet awakefromnib