Элементы управления, созданные во время выполнения, не имеют окна. Поповерс не может быть представлен из вида, у которого нет окна - PullRequest
0 голосов
/ 25 ноября 2011

У меня есть кнопка в представлении и вызов следующего void, чтобы открыть контроллер поповер с помощью средства выбора изображений, здесь нет проблем, поповер придет с помощью средства выбора изображений и т. Д.

когда я создаю UIButton программно в viewDidLoad, кнопки вызывают тот же void ниже, однако на этот раз, который выдает исключение " Поповеры не могут быть представлены из представления, у которого нет окна. "

-(IBAction)pickupPhoto:(id)sender
{
    CGRect rect = CGRectMake(100, 100, 1, 1); // [(UIScrollView *)sender frame];
    self.imgPicker = [[UIImagePickerController alloc] init];
    self.imgPicker.delegate = self;
    self.imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    self.popOver = [[UIPopoverController alloc] initWithContentViewController:imgPicker];
    [popOver setDelegate:self];
    [popOver presentPopoverFromRect:rect inView:[self view] permittedArrowDirections:UIPopoverArrowDirectionUp animated:NO];
    [imgPicker release];
}

здесь я создаю кнопки с одинаковым видом, кнопки вызывают пустоту.

-(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];
    }
}

Я вижу, когда я вызываю - (void) addButtons, self.view.window возвращает nil для кнопок, созданных во время выполнения, что вызывает проблему. да, я должен создавать кнопки во время инициализации, но при вызове контроллера представления как -storyBoard- Page Sheet нет вызова инициализации. как я могу обойти это?

любые идеи приветствуются. большое спасибо.

1 Ответ

0 голосов
/ 25 ноября 2011

Попробуйте создать кнопки в:

initWithNibName:bundle: 

или

awakeFromNib

методы. Может быть, это сработает.

...