うまくいけば、より多くのコードでより説明的にするためにこれを書き直しました:
UIView
以下のpageTitleViewコードと呼ばれる別のクラスを設定しました:ヘッダーファイル:
#import <UIKit/UIKit.h>
@interface pageTitleView : UIView
@property (nonatomic, strong) IBOutlet UILabel *pageTitle;
@property (nonatomic, strong) IBOutlet UILabel *subTitle;
@end
Mファイル:
@implementation pageTitleView
@synthesize pageTitle;
@synthesize subTitle;
- (id)initWithFrame:(CGRect)frame{
pageTitle = [[UILabel alloc] initWithFrame:CGRectMake(0,labelPosY,300,20)];
pageTitle.textColor = txtColour;
pageTitle.backgroundColor = [UIColor clearColor];
pageTitle.textAlignment = NSTextAlignmentCenter;
pageTitle.font = [UIFont systemFontOfSize:14];
// pageTitle.text to be set by parent view
[self addSubview:pageTitle];
}
親のViewControllerには、次のものがあります。
ヘッダーファイル:
#import <UIKit/UIKit.h>
@interface UsingThisGuide : UIViewController
@property (strong, nonatomic) UIView *PageTitleBlock;
@property (strong, nonatomic) UIWebView *dispalyPageContent;
@property (strong, nonatomic) UIView *FooterBar;
@end
Mファイルには次のものがあります。
#import <QuartzCore/QuartzCore.h>
#import "pageTitleView.h"
#import "MyFirstView.h"
@interface MyFirstView ()
@end
@implementation MyFirstView {
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad {
_PageTitleBlock = [[pageTitleView alloc] initWithFrame:CGRectMake(0, 0, 300, 50)];
_PageTitleBlock.layer.cornerRadius = 5;
_PageTitleBlock.pageTitle.text = @"This should work but not";
[self.view addSubview:_PageTitleBlock];
[super viewDidLoad];
}
@end
私がやりたいことは、次のようなものを使用して親コントローラーを介しpageTitle.text
てクラスから設定することではありませんが、これは私が得ているエラーです:pageTitleView
MyFirstView
_PageTitleBlock.pageTitle.text=
Property 'pageTitle' not found on object of type 'UIView *