отключить все UITabBarItems при запуске приложения для iPhone

#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