线程1:点击按钮上的信号SIGABRT

时间:2014-11-17 20:09:57

标签: ios objective-c xcode5

我正在我的项目中实现一个注销按钮。 我通过使用内部触摸事件来附加它。单击注销时,用户将被重定向到登录视图控制器,但由于某些奇怪的原因,应用程序在几秒钟后因以下错误而死亡。线程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];

}

登录页面在加载时没有任何内容。

2 个答案:

答案 0 :(得分:1)

您的退出签名都是错误的。您应该将消息行更改为:

-(IBAction) logout:(id) sender {

如果您愿意,可以忽略发件人。你的内部修饰期望向具有参数的方法发送消息,而你的参数则没有。这就是你崩溃的原因。

答案 1 :(得分: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被解散之前显示它,即使你没有动画也是如此。