Как выдвинуть модальное представление из didFinishPickingMediaWithInfo - PullRequest
3 голосов
/ 18 марта 2010

У меня есть imagePickerController, который позволяет пользователю брать или выбирать изображение. In - (void) imagePickerController: (UIImagePickerController *) пикир Я хотел бы вызвать открытие другого модального вида, чтобы захватить заголовок. У меня есть вызов для этой цели ... -(void) getcaption:(id) obj { textInput * ti = [[textInput alloc] initWithContent:@"" header:@"Caption for photo" source:2]; ti.delegate = self; [self presentModalViewController:ti animated:YES]; [ti release];<br> }

Вопрос в том, как вызвать getcaption, не вызывая спираль

#6663 0x324abb18 in -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:] ()

На данный момент я делаю

[self performSelector:@selector(getcaption:)  withObject:nil afterDelay:(NSTimeInterval)1];

в didFinishPickingMediaWithInfo что противно, и только на 95% надежнее

1 Ответ

3 голосов
/ 18 марта 2010

Полагаю, проблема в том, что вы пытаетесь показать свой новый вид до того, как ваш старый вид закрылся? Я предполагаю, что вы находитесь в родительском контроллере представления, который отображает оба модальных представления, причем он является родительским. Если это так, точка, в которой вы должны отобразить новый модальный вид, - это когда родительский вид полностью завершил скрытие предыдущего модального вида. В частности, это происходит в

- (void) viewDidAppear:(BOOL)animated

Вы хотите убедиться, что вы показываете второй модальный вид только после того, как предыдущий закончил, конечно (то есть не показывать его, когда родительский вид появляется по любой другой причине)

...