gpt4 book ai didi

ios - 尝试在演示过程中在 UITabBarController 上显示 UIImagePickerController

转载 作者:行者123 更新时间:2023-11-29 10:42:25 25 4
gpt4 key购买 nike

我需要帮助解决警告错误。我使用 UIImagePickerController,当我点击 tabBar 上的第三个选项卡时它会显示。当我取消时,我想显示选择相机之前的最后一个选项卡,但是当我关闭我的选择器时,我收到警告!!

这是我的代码,我不明白为什么会收到警告...

-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self showPickerController];
}


- (void) showPickerController
{
imagePicker = [[UIImagePickerController alloc] init];
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.delegate = self;
} else{
UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Erreur !"
message:@"Votre iPhone n'a pas de Camera"
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[message show];
}
[self presentViewController:imagePicker animated:NO completion:nil];
}

#pragma mark - Camera Methods

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
[self.tabBarController dismissViewControllerAnimated:NO completion:^{
if(self.tabBarController!=nil)
[self.tabBarController setSelectedIndex:0];
}];
}

有什么想法吗?

最佳答案

除了 danh 的回答之外,向您的 View Controller 添加一个 BOOL 属性,并向您的 viewDidAppear: 方法添加一些代码:

@property (nonatomic) BOOL出现;

- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];

if (!self.appeared || [self isMovingToParentViewController] || [self isBeingPresented]) {
self.appeared = YES;
[self showPickerController];
}
}

这将防止 UIImagePickerController 在被关闭后立即再次呈现。

此外,这与问题并不相关,但您可能想稍微更改 showPickerController 方法以防止显示空的 UIImagePickerController 如果没有相机可用:

- (void)showPickerController
{
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
imagePicker = [[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.delegate = self;
[self presentViewController:imagePicker animated:NO completion:nil];
}
else {
UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Erreur !"
message:@"Votre iPhone n'a pas de Camera"
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[message show];
}
}

关于ios - 尝试在演示过程中在 UITabBarController 上显示 UIImagePickerController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23892270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com