iOS: как отобразить форму входа? - PullRequest
0 голосов
/ 05 августа 2011

У меня есть mainWindow.xib в моем приложении с TabController для моего главного меню.

Теперь я хочу иметь регистрационную форму для своего приложения. Я добавил View (LoginViewController) и покажу это представление в начале:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
// Add the tab bar controller's current view as a subview of the window

self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];

LoginViewController *lvc = [[LoginViewController alloc]     initWithNibName:@"LoginViewController" bundle:nil];
lvc.delegate = self;
[self.tabBarController presentModalViewController:lvc animated:false];
[lvc release];

return YES;
}

Далее у меня есть мои проверки входа в систему, хорошо.

Теперь я пытаюсь отклонить представление после этого. Для этого я искал вокруг и нашел вопрос здесь: нынешний контроллер модального вида

Я добавляю все в свой проект, но получаю сообщение об ошибке в этом коде:

#import <UIKit/UIKit.h>

@interface Animexx3AppDelegate : NSObject <UIApplicationDelegate, 
                            UITabBarControllerDelegate, LoginViewControllerDelegate>
{
UIWindow *window;
UITabBarController *tabBarController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;

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

@end

Что означает «не удается найти протокол LoginViewControllerDelegate» в строке 2 / 3.

При добавлении в строку "lvc.delegate = self" я получаю предупреждение, сообщающее мне "о присвоении" id "из несовместимого типа" Animexx3AppDalagte ".

Что я не так?

Ответы [ 2 ]

2 голосов
/ 05 августа 2011

Вам необходимо импортировать файл заголовка, в котором вы объявили протокол LoginViewControllerDelegate. Скорее всего, файл LoginViewController.h.

0 голосов
/ 23 марта 2014

После многих попыток мы опубликовали библиотеку с открытым исходным кодом под названием CLHoppingViewController , которая обрабатывает именно такие сценарии.

Итак, в вашем случае вы бы сделали что-то вроде этого, чтобы описать процесс запуска:

UIViewController *loginViewController;
UIViewController *mainViewController;

if (user_not_logged_in) {
  [self hopToViewController:loginViewController then:^{
    [self hopToViewController:mainViewController then:nil];
  }];
}
else {
  [self hopToViewController:mainViewController then:nil];
}

Библиотека может поддерживать гораздо более сложные условные последовательности. Например, вы можете отобразить заставку, условно показать входящий UX и т. Д.

Здесь есть краткое руководство .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...