使用IBOutlets将视图控制器初始化为自定义视图

时间:2015-07-21 09:53:41

标签: ios objective-c uiview iboutlet awakefromnib

我正在尝试找到一种初始化视图控制器的方法,该视图控制器具有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挂钩到故事板中的视图。

enter image description here

自定义视图定义如下:

#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个视图中没有标签: enter image description here

1 个答案:

答案 0 :(得分:1)

我看到你的“MyContentView”有一个自己的笔尖。从另一个nib加载一个具有nib布局的自定义UIView类有点复杂。

我认为这个blog post包含答案