Objective c 在运行时上创建的控件没有窗口。无法从没有窗口的视图中显示弹出窗口

Objective c 在运行时上创建的控件没有窗口。无法从没有窗口的视图中显示弹出窗口,objective-c,ios,uibutton,uiimagepickercontroller,uipopovercontroller,Objective C,Ios,Uibutton,Uiimagepickercontroller,Uipopovercontroller,我在视图上有一个按钮,并调用下面的void来打开带有图像选择器的popover控制器,这里没有问题,popover提供了图像选择器等 当我在viewDidLoad上以编程方式创建UIButton时,按钮会调用下面相同的void,但这次引发了一个异常“无法从没有窗口的视图中显示弹出窗口。” 在这里,我在同一视图上创建按钮,按钮称为void -(void)addButtons { for (int i = 0; i < 10; i++) { self.btn = [[UIButton

我在视图上有一个按钮,并调用下面的void来打开带有图像选择器的popover控制器,这里没有问题,popover提供了图像选择器等

当我在viewDidLoad上以编程方式创建UIButton时,按钮会调用下面相同的void,但这次引发了一个异常“无法从没有窗口的视图中显示弹出窗口。

在这里,我在同一视图上创建按钮,按钮称为void

-(void)addButtons
{
for (int i = 0; i < 10; i++) {
    self.btn = [[UIButton alloc] initWithFrame:CGRectMake(i * 100, 0, 100, 80)];
    [[self.btn layer] setBorderColor:RGB(245, 245, 245).CGColor];
    [[self.btn layer] setBorderWidth:1.0f];
    [[self.btn titleLabel] setFont:[UIFont fontWithName:@"Thonburi" size:70]];
    [self.btn setTitle:doubleToString(i+1) forState:UIControlStateNormal];
    [self.btn setTitleColor:RGB(245, 245, 245) forState:UIControlStateNormal];
    [self.btn setTitle:doubleToString(i+1) forState:UIControlStateSelected];
    [self.btn setTitleColor:RGB(125, 225, 225) forState:UIControlStateHighlighted];
    [self.btn addTarget:[NMBPostUI alloc] action:@selector(pickupPhoto:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
    [btn release];
    }
}
-(无效)添加按钮
{
对于(int i=0;i<10;i++){
self.btn=[[UIButton alloc]initWithFrame:CGRectMake(i*100,01000,80)];
[[self.btn layer]setOrderColor:RGB(245245245245.CGColor];
[[self.btn层]宽度:1.0f];
[[self.btn titleLabel]setFont:[UIFont fontWithName:@“Thonburi”大小:70];
[self.btn setTitle:doubleToString(i+1)for状态:UIControlStateNormal];
[self.btn setTitleColor:RGB(245245245245)for状态:UIControlStateNormal];
[self.btn setTitle:doubleToString(i+1)for状态:UIControlStateSelected];
[self.btn setTitleColor:RGB(125225225)用于状态:uicontrol状态突出显示];
[self.btn addTarget:[NMBPostUI alloc]操作:@selector(pickupPhoto:)for controlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
[btn释放];
}
}
我可以看到,当我调用-(void)addButtons时,self.view.window会为运行时创建的导致问题的按钮返回nil。是的,我应该在初始化期间创建按钮,但当您将视图控制器作为-情节提要-页面工作表调用时,没有初始化调用。我怎么能绕过这个

欢迎提出任何意见。
非常感谢。

尝试在以下位置创建按钮:

initWithNibName:bundle: 


方法。也许这会起作用。

好的,这次是从代码调用的,并在初始化期间创建了按钮。没有什么变化。
initWithNibName:bundle: 
awakeFromNib