Проблема с dismissModalViewController - PullRequest
3 голосов
/ 12 декабря 2011

У меня проблема при отклонении модального представления:

У меня есть вкладка с пятью вкладками. Я на четвертой вкладке, и я отображаю модальное представление. Когда я отклоняю это. Я перехожу на первую вкладку, но хочу остаться на четвертой.

Чтобы показать модальный режим, я вызываю этот метод в родительском контроллере:

[self presentModalViewController:controller animated:YES];

Чтобы скрыть модал, я вызываю этот метод в родительском контроллере:

[self dismissModalViewControllerAnimated:YES];

Я уже пытаюсь вызывать методы self.tabBarController / self.navigationController вместо метода self, но это та же проблема.

У кого-то есть идея?

EDIT:

Я вызываю методы в контроллере четвертой вкладки.

Это контекст:

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    UIImagePickerController *imgPicker = [[UIImagePickerController alloc] init];
    imgPicker.allowsEditing = NO;
    imgPicker.delegate = self;
    switch (buttonIndex) {
        case 0: {
            [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kMobiglissFromPicker];
            imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
            [self presentModalViewController:imgPicker animated:YES];
            break;
        }
        case 1: {
            if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
                [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kMobiglissFromPicker];
                imgPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
                [self presentModalViewController:imgPicker animated:YES];
            }               
            break;
        }
    }
}

- (void)imagePickerController:(UIImagePickerController *)imgPicker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    UIImage *origin = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

    UIImage *photo = [origin thumbnailImage:280
                          transparentBorder:0.0
                               cornerRadius:0.0
                       interpolationQuality:kCGInterpolationHigh];

    [icon replaceImageWithImage:photo];

    [serverProxy updateProfileAvatar:photo];
    [self dismissModalViewControllerAnimated:YES];
    imgPicker.delegate = nil;
}

- (IBAction)editAvatar:(id)sender {
    NSString *camera = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] ? [WPLanguage get:@"SignupPhotosheetCamera"] : nil;
    UIActionSheet *photoSheet = [[UIActionSheet alloc] initWithTitle:[WPLanguage get:@"SignupPhotosheetTitle"]
                                                            delegate:self 
                                                   cancelButtonTitle:[WPLanguage get:@"CANCEL"] 
                                              destructiveButtonTitle:nil 
                                                   otherButtonTitles:[WPLanguage get:@"SignupPhotosheetGallery"], camera, nil];
    [photoSheet showInView:self.view];
}

1 Ответ

4 голосов
/ 12 декабря 2011

Просто предположение (вам нужно добавить больше деталей): устанавливает ли ваш viewController, который реализует UITabBarDelegate, выбранный элемент на viewWillAppear: (или один из других вызванных методов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...