#iphone #ios #uitabbarcontroller #uitabbaritem
#iPhone #iOS #uitabbarcontroller #uitabbaritem
Вопрос:
Мои требования заключаются в том, что всякий раз, когда запускается приложение, мне нужно показывать изображение на экране с логотипом компании с UITabBar в нижней части экрана, при этом все UITabBarItems отключены.
Пользователь будет продолжать видеть этот вид логотипа, пока не решит щелкнуть по любому из tabbaritems, а затем появится соответствующий контроллер представления
Я попытался установить значение [tabItem setEnabled:enableState];
FALSE в appDelegates application:didfinishlaunchingwithoptions:
непосредственно перед приведенным ниже, но все равно не получил описанного выше поведения:
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
Можете ли вы, пожалуйста, подсказать, как этого можно достичь?
Спасибо,
Ответ №1:
ну, у нас есть один хитрый способ для этого, просто в первый раз статически установите uiimageview (вид заставки yr) из xib на каком-либо контроллере просмотра панели вкладок yr (только для создания скриншота), после чего вы сможете получить снимок экрана вашей панели вкладок с вашим uiimageview (изображение заставки), нажав homeкнопка и кнопка блокировки с устройства.
Используйте это изображение в формате png на скриншоте в качестве заставки uiimageview (т. Е. Default.png в приведенном выше ответе) с большой рамкой, чтобы пользователь не мог коснуться нашего реального контроллера панели вкладок.
Ответ №2:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
defaultImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default.png"]]; // enter name of image with your company logo
defaultImageView.frame =self.window.bounds;
[self.window addSubview:defaultImageView];
[self.window makeKeyAndVisible];
[self continueLoading]; //Load what do you want to load
return YES;
}
И затем, после того, как все загружено, запустите этот метод:
- (void) removeImageFromScreen
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDelegate:defaultImageView];
[UIView setAnimationDidStopSelector:@selector(removeFromSuperview)];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDuration:0.3f];
defaultImageView.alpha = 0;
[UIView commitAnimations];
}
Комментарии:
1. спасибо за ваш ответ. это помогает мне некоторое время показывать файл default.png. однако мое требование — показать uitabbarcontrol вместе с этим изображением без выбранных элементов tabbaritems (я не уверен, как это сделать). только после того, как игрок нажмет на любой tabbaritem, должен появиться экран для этого tabbaritem