2009-09-05 67 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

相关问题