2010-05-02 4 views
0

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

В моем файле заголовка я определяю переменную для вошедшего в состоянии

#define loggedIn 0 

Я полагаю, что я должен затем ссылаться на это в методе initWithNibName, а затем решить, NIB, чтобы загрузить.

Правильный способ это сделать?

Если это может кто-то помочь мне с точным кодом?

Спасибо за любую помощь

+0

Подумайте, как вы будете использовать 'loggedIn', а затем снова просмотрите свой вопрос. –

ответ

4

Я не думаю, что вы понимаете, как использовать определение директивы.

Все этой линии ...

#define loggedIn 0 

... это заставит компилятор заменить ноль везде в коде, который появляется текст «LoggedIn».

Итак, если у вас есть код, который говорит:

if (loggedIn) { 
    //... load one nib 
}else{ 
    // .... load another nib 
} 

Компилятор превращает это в:

if (0) { 
    //... load one nib 
}else{ 
    // .... load another nib 
} 

В этом случае, ноль будет вычисляться в ложь, а второй наконечник всегда будет загружен ,

Эти типы определений используются таким образом в разработке, поэтому вы можете принудительно приложить приложение к определенному состоянию. Например, если вы хотите повторить второй бит, вы должны определить «loggedIn» равным нулю, и если вы хотите проверить первое, вы должны определить «loggedIN» как 1.

Что вам нужно сделать, это сделать проверить какой-то вид, чтобы узнать, вошел ли пользователь в систему. Я не знаю, какой будет этот тест, так как он зависит от того, что вы регистрируете. Затем, в зависимости от результатов этого теста, вы загружаете один наконечник или другой.

Директива define не имеет никакого отношения к этому.

1

#define не то, что вы хотите, как объяснил TechZen. Для этого вам следует использовать int или BOOL.

Например:

BOOL LoggedIn = NO;

- (void) login { 
    // Check login details, if correct continue, if not, break. 
    BOOL loggedIn = YES 
} 

Тогда вы могли бы использовать это в другой функции;

if (loggedIn == YES) { 
    NSLog(@"Logged in!"); 
    // Load nib 
} 
Смежные вопросы