我制作的应用是我们公司产品的扩展。用户使用与我们产品(在服务器端)相同的用户名和密码登录。
本质上,作为用户,您可以在应用程序中键入“ stuff”,然后将其发送到服务器。每次对服务器的调用都会检查用户名和密码是否正确。 (存储在核心数据和钥匙串中)
但是,如果我们收到无效的密码作为回应(例如,如果他们的上级更改了密码),则应将用户从应用中删除(我已经为此编写了代码),并选择了root身份。
我有一个NSObject类XYZUploader.m,它处理来自服务器的响应。
每当我们收到无效的密码作为响应时,我都想锁定到root用户。
XYZUploader不是上面可以找到的视图控制器。它只是一个NSObject类,用于处理响应(以及其他)。如此简单:
[self.navigationController popToRootViewControllerAnimated:YES];
不起作用。我得到错误:
Property 'navigationController' not found on object of type 'XYZUploader'
我想将XYZUploader链接(委托?)到XYZiPad_Login(根,上面的第一个viewcontroller)。这样我就可以调用一个函数,以从用户当时恰巧在其上的任何ViewController选回到根目录
我该怎么做呢?
最佳答案
在rootviewcontrller中注册通知,注销方法应处理rootviewcontrller的过渡
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(logout)
name:@"InvalidCredentialsNotification"
object:nil];
在XYZUploader.m中发布通知
dispatch_async(dispatch_get_main_queue(), ^{
[[NSNotificationCenter defaultCenter] postNotificationName:@"InvalidCredentialsNotification" object:nil];
});