2014-11-17 7 views
0

Я реализую кнопку выхода из системы в своем проекте. Я прикрепил его, используя прикосновение внутри события. При выходе из системы, пользователь перенаправляется на контроллер входа в систему, но по какой-то странной причине приложение умирает через несколько секунд со следующей ошибкой. Тема 1: сигнал SIGABRT.Тема 1: сигнал SIGABRT при нажатии кнопки

Выход щелкнул: (все это метод не стирает имя пользователя и перенаправление на «Вход» контроллер представления)

-(IBAction)logout { 

[[NSUserDefaults standardUserDefaults] setObject:nil forKey:@"User"]; 

[self dismissViewControllerAnimated:NO completion:nil]; 

UIViewController * vc = [self.storyboard instantiateViewControllerWithIdentifier:@"Login"]; 
[self presentViewController:vc animated:NO completion:nil]; 

} 

Войти страница не имеет ничего, когда он загружает.

ответ

1

Ваша подпись для выхода из системы не правильная. Вы должны изменить линию сообщений на:

-(IBAction) logout:(id) sender { 

Вы можете игнорировать отправителя, если хотите. Ваш прикосновение внутрь ожидает отправки сообщения методу, который имеет параметр, а ваш - нет. Вот почему ты рушишься.

+0

спасибо. ваш ответ был очень полезным. –

0

Попробуйте изменить свой код с этим:

-(IBAction)logout { 

    [[NSUserDefaults standardUserDefaults] setObject:nil forKey:@"User"]; 

    [self dismissViewControllerAnimated:NO completion:^{ 
     UIViewController * vc = [self.storyboard instantiateViewControllerWithIdentifier:@"Login"]; 
     [self presentViewController:vc animated:NO completion:nil]; 
    }]; 

} 

Вероятно, вы показываете новый ViewController перед старый был удален с поля, даже если это не анимированные.

+0

Проблема была в том, о чем упомянул Оуэн. Мне пришлось добавить отправителя: (id). Поскольку прикосновение внутрь предполагает отправить параметр методу. У моего метода не было параметра, поэтому он не удался. –

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