将视图控制器添加到 uiwindow addsubview
Posted
技术标签:
【中文标题】将视图控制器添加到 uiwindow addsubview【英文标题】:add viewcontroller to uiwindow addsubview 【发布时间】:2015-08-13 07:10:39 【问题描述】://我正在使用。
CalVC *cal = [[CalVC alloc]initWithNibName:@"CalVC" bundle:nil];
cal.view.frame = [UIScreen mainScreen].applicationFrame;
[[[[UIApplication sharedApplication] delegate] window] addSubview:cal.view];
它正在工作,CalVC 出现了,我在 CalVc 中显示了一个计算器,但是当它通过这种方法出现时,计算器的按钮不起作用并显示错误 //exc_bad_access code=exc_i386_gpflt ios。
【问题讨论】:
【参考方案1】:我认为 CalVC 已发布。所以你必须定义一个属性并将其保存在 .h 文件中。
@property (nonatomic, strong) CalVC * _cal;
在 .m 文件中:
_cal = [[CalVC alloc]initWithNibName:@"CalVC" bundle:nil];
【讨论】:
Thanx anhtu it didn't crash now thanx 你知道如何从另一个视图中删除这个 uiwindow [self.view removeFromSuperview]; [self removeFromParentViewController];我用它来移动,但它仍然出现在屏幕上,但是当我点击任何按钮时它崩溃了。 @vivekpadaya 不确定“此 uiwindow”的含义。但是对于删除 _cal(CalVC): [_cal.view removeFromSuperView];【参考方案2】:只需将CalVC *cal
的全局引用创建为属性。由于本地参考,您的视图正在解除分配。
@property (nonatomic, retain) CalVC * _cal;
【讨论】:
以上是关于将视图控制器添加到 uiwindow addsubview的主要内容,如果未能解决你的问题,请参考以下文章
UIWindow 的 rootViewController 属性