#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.
Переместите панель вкладок и связанные с ней контроллеры просмотра в другой раздел и загружайте его только после завершения работы с экраном входа в систему.