我正在我的项目中实现一个注销按钮。 我通过使用内部触摸事件来附加它。单击注销时,用户将被重定向到登录视图控制器,但由于某些奇怪的原因,应用程序在几秒钟后因以下错误而死亡。线程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];
}
登录页面在加载时没有任何内容。
答案 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被解散之前显示它,即使你没有动画也是如此。