#iphone #ios #cocoa-touch #uinavigationcontroller #uiimagepickercontroller
#iPhone #iOS #cocoa-touch #uinavigationcontroller #uiimagepickercontroller
Вопрос:
У меня есть UIImagePickerController, и пока он загружается, я хочу отобразить отказ от ответственности в modalView.
- (void) viewDidLoad
{
self.picker = [[UIImagePickerController alloc] init];
self.picker.sourceType = UIImagePickerControllerSourceTypeCamera;
self.picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
self.picker.delegate = self;
[self presentModalViewController:self.picker animated:NO];
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
DisclaimerController* disclaimer = [[DisclaimerController alloc] init]; // Loads the Xib inside the init method
UINavigationController* controller = [[UINavigationController alloc] initWithRootViewController:disclaimer];
[self.navigationController presentModalViewController:controller animated:YES];
}
Но он не отображается.
И я не хочу отклонять средство выбора, пока отображается отказ от ответственности, или показывать его позже, потому что есть некоторые процедуры, которые требуют некоторого времени, и время, когда пользователь читает отказ от ответственности, не позволит ему ждать слишком долго после закрытия отказа.
Ответ №1:
Я бы решил это с помощью AlertView.
Но если вы предпочитаете использовать свой метод, возможно, это поможет
Попробуйте это:
- (void) showModalDisclaimer {
DisclaimerController* disclaimer = [[DisclaimerController alloc] init];
// Loads the Xib inside the init method
UINavigationController* controller = [[UINavigationController alloc]
initWithRootViewController:disclaimer];
[self.picker presentModalViewController:controller animated:YES];
// notice self.picker
}
- (void) viewDidLoad
{
self.picker = [[UIImagePickerController alloc] init];
self.picker.sourceType = UIImagePickerControllerSourceTypeCamera;
self.picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
self.picker.delegate = self;
[self presentModalViewController:self.picker animated:NO];
[[UIApplication sharedApplication] setStatusBarHidden:NO
withAnimation:UIStatusBarAnimationNone];
[self performSelector:@selector(showModalDisclaimer) withObject:nil afterDelay:0.1];
}
Комментарии:
1. Спасибо, что все работает нормально. Действительно ли нужна задержка? Потому что, если я заменю performSelector на код showModalDisclaimer, он также будет работать.