刷新UIView以启动UIImagePickerController



在我的视图中,如果我的self.image=nil,我必须更改重新出现的UIImagePickerController的视图,如:

[self.tabBarController setSelectedIndex:0]; // other view
[self.tabBarController setSelectedIndex:3]; // my view

它工作了,UIImagePickerController再次出现,但在调用我的self.image=nil之后,是否有任何方法可以刷新UIViewController并直接显示UIImagePickerController?

这是我的代码:

- (void)didMoveToParentViewController:(UIViewController *)parent
{
self.image = nil;
[self.tabBarController setSelectedIndex:0]; // other view
[self.tabBarController setSelectedIndex:3]; // my view
}

和:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    if (self.image == nil && [self.videoFilePath length] == 0) {
        self.imagePicker = [[UIImagePickerController alloc] init];
        self.imagePicker.delegate = self;
        self.imagePicker.allowsEditing = NO;
        self.imagePicker.videoMaximumDuration = 10;

        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
            self.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
        }
        else {
            self.imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

        }
        self.imagePicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:self.imagePicker.sourceType];
            [self presentViewController:self.imagePicker animated:NO completion:nil];
    }
}
[self.tabBarController layoutIfNeeded]

这是UIView上的一个方法,可以立即布局子视图。根据苹果文档:

使用此方法可以在绘制之前强制子视图的布局。使用将接收消息的视图作为根视图,此方法将从根开始的视图子树。

相关内容

  • 没有找到相关文章

最新更新