Добавить экран входа в систему перед панелью вкладок в IOS

#iphone #objective-c #ios

#iPhone #objective-c #iOS

Вопрос:

У меня есть приложение, содержащее представление панели вкладок, и у меня есть логин xib (login.xib) и соответствующие ему файлы классов (LoginController) в том же приложении. Я хочу, чтобы при запуске моего приложения сначала загружался файл входа, а затем, как только я нажимаю на кнопку входа, должен запускаться мой вид на панели вкладок.

Перепробовал много способов, но ничего не сработало. : (

Последнее, что я попытался поместить следующий код в файл AppDelegate в конце приложения didFinishLaunchingWithOptions, но столкнулся с ошибкой:

 loginController = [[LoginController alloc] init];
[window addSubview:tabcontroller.view];
[window addSubview:loginController.view];
[window makeKeyAndVisible];
return YES;
  

Ошибка в том, что «LoginController» не объявлен.

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

Кроме того, при нажатии кнопки () внутри входа я использую событие Touch Up Inside.

Ответ №1:

 loginController = [[LoginController alloc] initWithNibName:@"login" bundle:nil];
[window addSubview:loginController.view];
[window makeKeyAndVisible];
  

Добавьте следующую строку, когда завершите проверку входа в систему.

 [window addSubview:tabcontroller.view];
  

Также, пожалуйста, проверьте, где используется loginCont?

Спасибо,

Комментарии:

1. Хорошо, я пробую это… но еще один запрос. Что такое «initWithNibName:@»login»»?? Что означает login в этом?

2. Я все еще получаю ту же ошибку. Нужно ли мне что-либо объявлять в файле .h?? loginCont — это не что иное, как LoginController… Я переименовал его.

3. да, для входа используется ваше имя your .xib (как вы упомянули). просто добавьте #import «LoginController.h» в заголовок …. это сработает ….. спасибо

4. Я все еще получаю сообщение об ошибке после добавления файла заголовка в AppDelegate… понятия не имею, почему … : (

5. Добавляем ли мы что-нибудь в AppDelegate. что такое LoginController?

Ответ №2:

Просто попробуйте использовать:

 - (void)applicationDidFinishLaunching:(UIApplication *)application 
{

     UIView *indicatorView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
     UIImageView *splashV=[[UIImageView alloc]initWithFrame:CGRectMake(0, 20, 320, 460)];
     [splashV setImage:[UIImage imageNamed:@"Default.png"]];    
     [indicatorView setBackgroundColor:[UIColor clearColor]];

     [indicatorView addSubview:splashV];
     [self.window addSubview:indicatorView];

     //Take button check credentials on successful login call  StopViewOnsuccessfullogin

}

-(void)StopViewOnsuccessfullogin
{
    [indicatorView removeFromSuperview];
    [splashV release];
        [window addSubview:tabcontroller.view];
        [window makeKeyAndVisible];

}
  

Надеюсь, это сработает…..

Ответ №3:

Один из способов сделать это — изменить свойство view controller AppDelegate в Interface Builder на файл XIB вашего нового View Controller.

Переместите панель вкладок и связанные с ней контроллеры просмотра в другой раздел и загружайте его только после завершения работы с экраном входа в систему.