Модальный viewController представлен от UITabBarController - PullRequest
1 голос
/ 08 марта 2012

У меня есть класс, который является подклассом UITabBarController, который содержит 4 дочерних viewController. Я добавил кнопку, похожую на RedLaser, Instagram, Path, DailyBooth и другие приложения. Мой здесь как лучший пример:

Image of tabBar with center button

Эта кнопка вызывает метод в TabBarController, который представляет модальный viewController. Когда это отклонено, NavigationControllers в текущем выбранном viewController начинает вести себя странно. Анимация поп все испортила, и другие мелкие ошибки случаются, пока вы не выберете другую вкладку на панели вкладок. Тогда анимации в порядке, пока viewController не будет представлен снова.

Я уверен, что это потому, что я отклонил это неправильно, но я не уверен, как это сделать.

это мой код в TabBarController:

-(void)showScanner {
    ZBarReaderViewController *reader = [[ZBarReaderViewController alloc] init];
    reader.readerDelegate = self;
    reader.supportedOrientationsMask = ZBarOrientationMaskAll;

    ZBarImageScanner *scanner = reader.scanner;
    [scanner setSymbology:ZBAR_I25
                   config:ZBAR_CFG_ENABLE
                       to:0];
    [scanner setSymbology:ZBAR_QRCODE
                   config:ZBAR_CFG_ENABLE
                       to:0];

    [reader setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
    [self presentModalViewController:reader
                            animated:YES];
    [reader release];
    //[self playBeep];
    }

-(void)imagePickerController:(UIImagePickerController *)picker     didFinishPickingMediaWithInfo:(NSDictionary *)info {
    id<NSFastEnumeration> results = [info objectForKey:ZBarReaderControllerResults];
    ZBarSymbol *symbol = nil;
    for (symbol in results)
        break;
    NSString *barcode = symbol.data;

    UINavigationController *searchNavController = [[self viewControllers] objectAtIndex:1];
    WLSearchViewController *searchVC = [searchNavController.viewControllers objectAtIndex:0];

    //    WLSearchViewController *searchVC = [[self viewControllers] objectAtIndex:1];
    //[searchNavController popToRootViewControllerAnimated:NO];
    [self setSelectedViewController:searchNavController];
    [self dismissModalViewControllerAnimated:YES];

    [self playBeep];

    [searchVC handleSearchForTerm:barcode];
}

-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
    [self dismissModalViewControllerAnimated:YES];
}

1 Ответ

4 голосов
/ 08 марта 2012

Обнаружил, что было не так, решил, что я опубликую это, чтобы помочь кому-либо, кто сталкивается с этим.

Я переопределил viewDidAppear: animated: в моем tabBarController, но я не вызывал [super viewDidAppear:animated:]

Добавил, что и все стало лучше!

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