關於繼承簡單的問題繼承在一個UIView文件
我有一個標準的程序與主視圖:
MasterViewController.h
enter code here
@interface MasterViewController:UIViewController中
使用繪圖子視圖:
MasterViewController.m
frame = CGRectMake(xo, yo, side*width, side*height); // maxSide
backView = [[BackView alloc] initWithFrame:frame];
[backView setBackgroundColor:[UIColor whiteColor]];
[self infoToBackView];
[self.view addSubview:backView];
BackView.h
@interface BackView : UIView
和BackView.m擁有的drawRect:
- (void)drawRect {
:
:
}
我的問題是,我想BackView從MasterViewController繼承,即我想要 Backview.h爲
@interface BackView : MasterViewController
它允許它從MasterViewController繼承它需要的變量。
問題是這不起作用; BackView必須從UIView繼承才能使用DrawRect進行繪製。其中infoToBackView是發送所需的變量BackView的方法
[self infoToBackView];
[backView setNeedsDisplay];
:因此,調用UIView的BackView之前,我必須把它所需要的變量圖。
64,000美元的問題:我怎樣纔能有一個從MasterViewController繼承並具有drawRect的BackView?
你不能這樣做,因爲Objective- C沒有多重繼承。你不應該這樣做,因爲視圖控制器不是視圖。你最好多思考一下設計。您不需要從視圖控制器繼承變量 - 視圖控制器應該使用該信息並將其傳遞給視圖。 – Abizern
你不能。如果你的視圖要繪製自己,它需要是一個UIView子類。爲什麼將這些值傳遞給視圖是一個問題? –
將值傳遞給視圖不是問題。我只是認爲使用繼承會使它更容易。 – mbs31