окно аутентификации iphone перед шаблоном навигации - PullRequest
0 голосов
/ 28 февраля 2011

Можно ли добавить окно аутентификации, появляющееся до того, как шаблон на основе навигации загрузит свое первое представление.Если да, может кто-нибудь помочь мне, как это сделать.Кроме того, возможно ли иметь различные виды / экраны для шаблона на основе навигации.Как после выбора опции с первого экрана, я иду к следующему, а затем к следующему и так далее.Поскольку я новичок в этой области, прошу прощения, если это очень простой вопрос.

Ответы [ 2 ]

1 голос
/ 28 февраля 2011

Приложения в стиле навигации действительно просты и работают по принципу «стека». Вы представляете новые «экраны» UIViewController в стеке навигации, и когда вы закончите с ними, вы «выталкиваете» их (по умолчанию вам ничего не нужно делать, кнопка «назад» будет сгенерирована для вас, когда вы вставьте новый UIViewController в стек навигации.

Вот как вы помещаете новый контроллер в стек навигации:

UserContactInfoVC *vc = [[UserContactInfoVC alloc] initWithNibName:@"UserContactInfoVC" bundle:nil];
[self.navigationController pushViewController:vc animated:YES];
[vc release];

Редактировать: представление «начального» экрана перед тем, как иногда вызывается экран навигации с отображением «всплывающего» экрана. Это тоже просто сделать. Он использует другой вид механизма представления UIViewController, называемый «модальное представление». Любой UIViewController может показать другой UIViewController модально, выполнив это:

PlaceOrderVC *vc = [[PlaceOrderVC alloc] initWithNibName:@"PlaceOrderVC" bundle:nil];
[self.navigationController presentModalViewController:vc animated:YES];
[vc release];

Я нашел лучшее место для представления заставки в приложении ApplicationDelegate, где вы представляете главное окно для приложения. Я делаю это так:

- (void) presentSplashScreen
{
    SplashVC *vc = [[SplashVC alloc] initWithNibName:@"SplashVC" bundle:nil];
    vc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self.viewController presentModalViewController:vc animated:NO];
    [vc release];

}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    // Override point for customization after application launch.

    // Add the view controller's view to the window and display.
    [self.window addSubview:viewController.view];
    [self.window makeKeyAndVisible];

    [self presentSplashScreen];

    return YES;
}
0 голосов
/ 28 февраля 2011

Вы можете начать с приложения на основе навигации и отобразить представление авторизации в «viewDidLoad», или вы можете создать приложение на основе вида и создать представление навигации программным способом.

В корневом контроллере (для варианта на основе навигации):

- (void)viewDidLoad {
    [super viewDidLoad];

    login *loginCont = [[login alloc]  init];
    [self presentModalViewController:loginCont animated:YES];
    [loginCont release]; 
}

Как создать представление на основе навигации на лету, можно найти в документации Apple: ссылка

После успешной авторизации вы сделаете следующее:

UIViewController *rootController = [[MyRootViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc]
                            initWithRootViewController:rootController];
[rootController release];

UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[window addSubview:navigationController.view];
[window makeKeyAndVisible];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...