iPhone - PresentModalViewController через UITabBarItem и чисто dismissModalViewController

У меня есть tabBarController , который я добавляю, помещая следующий код в:

AppDelegate.h:

    ...
    UITabBarController IBOutlet *tabBarController;
}

@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;

AppDelegate.m:

    ...
   [self.window addSubview:tabBarController.view];
   [self.window makeKeyAndVisible];
   [tabBarController setDelegate:self];

Затем я использую следующий код для представления модального контроллера просмотра сканирования штрих-кода:

- (void)tabBarController:(UITabBarController *)tbc didSelectViewController:(UIViewController *)vc {
        // Middle tab bar item in question.
        if (vc == [tabBarController.viewControllers objectAtIndex:2]) {
           ScanVC *scanView = [[ScanVC alloc] initWithNibName:@"ScanViewController" bundle:nil];

           // set properties of scanView's ivars, etc

           UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:scanView];

           [tabBarController presentModalViewController:navigationController animated:YES];
           [navigationController release];
           [scanView release];
        }
    }

Когда он действительно представлен, я думаю, что этот метод не выглядит визуально привлекательным, потому что, когда я закрываю модальное представление, я возвращаюсь к пустому просмотр.

Множество приложений для сканирования штрих-кодов или приложений, которые, например, просто отображают средство выбора изображения; сделать это довольно успешно. Мне просто интересно, какую реализацию они использовали бы для достижения такого эффекта.

Это снимок экрана приложения под названием Path , которое имеет те же функции, что и я:

alt text

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

Любая помощь будет принята с благодарностью, поскольку я застрял в этом довольно долгое время. Кроме того, я даже не уверен, что это правильный способ разместить весь этот код в моем AppDelegate , чтобы контроллер представления был представлен как модальный. Все это кажется неправильным.

7
задан fuzz 17 January 2011 в 04:37
поделиться