2013-03-20 3 views
0

Извините, если заголовок кажется немного неоднозначным.Программа вылетает при обновлении текста кнопки.

Я вызываю функцию checkLogin из метода viewDidLayoutSubviews моего класса. Вот код для метода:

KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"UserLogin" accessGroup:nil]; 
NSString *activeUser = [keychain objectForKey:(id)kSecAttrAccount]; 
int length = [activeUser length]; 
NSLog(@"%d", length); 

if (length > 0) { 
    NSLog(@"Greater than 0"); 
    [testLabel setHidden:FALSE]; 
    [testLabel setText:@"Currently logged in"]; 
    /* 

    To fix this, create a new button? 

    */ 
    [loginButton setTitle:@"Log Out" forState:UIControlStateNormal]; 
} else { 
    NSLog(@"Less than 0"); 
    [testLabel setHidden:TRUE]; 
    [loginButton setTitle:@"Log In" forState:UIControlStateNormal]; 
    //[loginButton setTitle:@"Log In" forState:UIControlStateHighlighted]; 
} 
// Logout [keychain resetKeychainItem]; 

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

Ошибки я получаю

*** Assertion failure in -[UIView layoutSublayersOfLayer:], /SourceCache/UIKit/UIKit-2380.17/UIView.m:5781\ 2013-03-20 16:24:55.751 CompAir[5321:907] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Auto Layout still required after sending -viewDidLayoutSubviews to the view controller. FirstViewController's implementation needs to send 
-layoutSubviews to the view to invoke auto layout.'} 
+1

Пожалуйста, разместите (символическую) трассировку стека и сообщите нам все, что не так. – trojanfoe

+0

Покажите нам код, где создаются 'loginButton' и' textLabel'. И скажите нам, используете ли вы ARC, и если свойства для 'loginButton' и' textLabel' сильны. – dasdom

+0

Проблема не в testLabel, это обновление прекрасно. И loginButton был создан с использованием GUI-дизайнера. Я не использую ARC – 2013-03-20 16:37:16

ответ

0

Хорошо, так что мне удалось исправить этот вопрос сейчас. У меня по какой-то причине были дополнительные ограничения на ширину моей кнопки входа, которые не присутствовали на других кнопках (и, следовательно, почему они работали). Проблема решена после устранения этих ограничений.

Смежные вопросы