2009-09-05 65 views
0

在我的UIViewController的viewDidLoad方法我如一個UIImageView實例調用階段:添加一個UIImageView作爲一個UIViewController的子視圖,而無需使用IB

stage = [Stage viewWithParent:self]; 

,並調用此:

- (id)initWithParent:(UIView *)parent { 
    self = [self initWithFrame:CGRectZero]; 

    if (!self) 
     return nil; 

    [parent addSubview:self]; 

    return self; 
} 


+ (id) viewWithParent:(UIView *)parent { 
    return [[[self alloc] initWithParent:parent] autorelease]; 
} 

我用前從UIImageView中調用它,並且一切都很好。圖像可見,觸摸事件已啓用並作出響應。從UIViewController我得到一個窗口,但沒有顯示它,並沒有觸及記錄。我錯過了什麼?

任何幫助表示讚賞!

謝謝// :)

+0

看到這個------ http://stackoverflow.com/questions/3321374/cocoa-touch-adding-a-uiimageview-programmatically – 2011-12-08 12:30:24

回答

1
stage = [Stage viewWithParent:self.view]; 

應該工作。

Xcode是否沒有給你警告?

+0

沒有警告,打開靜態分析器的乾淨構建也是如此。我的代碼完全讀取您在那裏的內容,但仍然沒有快樂。該應用程序加載,按預期正確地向右旋轉,並顯示我一個白色屏幕,而不是我真正groovy UIImageView子視圖...? – Spanky 2009-09-05 09:14:54

+0

您仍然應該將self更改爲self.view,因爲您希望子視圖被添加到viewcontroller而不是viewcontroller的視圖中。 如果我更改爲[viewController addSubview:newView]; 在我的項目,然後Xcode給我:/Users/mz/Dev/Working/BlurApp/Classes/BlurAppAppDelegate.m:22:警告:'BlurAppViewController'可能不會響應'-addSubview:' 因爲你不是看到它,也許你的viewcontroller被定義爲UIView *? – mahboudz 2009-09-05 11:43:31

1

視圖控制器不是視圖;他們是控制(擁有和管理)視圖的控制器。嘗試將視圖控制器的視圖作爲所需的父項傳遞。

+0

沒有喜悅那裏,沒有工作。不過謝謝。 – Spanky 2009-09-05 09:08:44

相關問題