Может быть, есть лучший способ, но я хочу открыть список выбора, когда пользователь нажимает кнопку в UIalertView. Мне бы хотелось, чтобы этот список появлялся, пока вид предупреждения все еще виден, и чтобы все было близко, когда пользователь нажимает на элемент в списке выбора.
Я подумал, что смогу сделать это, добавив список в качестве подпредставления в UIAlertView и сохранить отображение UIalertView с помощью NSRunLoop в цикле while, который появляется с флагом, установленным списком выбора. Однако я не могу заставить это работать, потому что флаг не устанавливается до того, как цикл while возвращается в NSRunLoop. Второе нажатие заставит его выпасть из цикла while, но это не то, что я хочу.
- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex{
CGRect popUpPickerFrame = alertView.frame;
PopUpPicker *popUpPicker = [[PopUpPicker alloc] initWithFrame:CGRectMake(popUpPickerFrame.origin.x +150,popUpPickerFrame.origin.y-50,115,250)];
popUpPicker.delegate = self;
popUpPicker.aList = [NSArray arrayWithObjects:@"General Plan", @"Light Plan", @"Melatonin Plan", @"Bed Times", @"Done", nil];
popUpPicker.tag = 10;
[alertView addSubview:popUpPicker];
while (popUpPicker.tag == 10) {
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
beforeDate:[NSDate distantFuture]];
}
[popUpPicker release];
}
Я устанавливаю popUpPicker.tag для строки, которую пользователь нажимает в tableView: didSelectRowAtIndexPath: метод списка, который затем вызывает метод делегата списков.
Я могу заставить всплывающий список работать нормально, но только после закрытия UIAlertView.
Спасибо за любую помощь.
Джон