0

我有一个具有不同 ViewControllers 的应用程序,这些 ViewControllers 在导航控制器中进行管理。在一个 ViewController 中,我向我的 WebService 发出请求以对用户进行身份验证。我正在用 BOOL (isLoggedIn) 编写响应。现在我需要在不同的 ViewController 中使用这个 BOOL 和用户名。我需要该变量来更改自定义导航按钮标题(登录-> 注销)。同样在另一个 ViewController 中,我必须向我的 WebService 发送一些东西,但只允许经过身份验证的用户 (isLoggedIn) 进行调用。我希望它解释得足够好:) 那么我必须做些什么才能完成这项工作?我读过一些东西来创建一个单例类,这是正确的方法吗?

或者我应该以某种方式从我的 LoginViewController 连接到受影响的 ViewControllers?我怎样才能做到这一点?现在我刚刚使用方法 prepareForSegue 来引用 DetailViewController 并传递数据。

4

1 回答 1

1

您可以进行单例实现,例如:

static SingletonClass *_sharedClass = nil;
@implementation SingletonClass

@synthesize sharedVar;

+ (SingletonClass*)sharedClass
{
    if (_sharedClass == nil) {
        _sharedClass = [[SingletonClass alloc] init];
    }
    return _sharedClass;
}

- (id)init
{
    if ((self = [super init])) {
        //init any class vars you need
    }
    return self;
}
@end

然后让 sharedVar 成为该类的属性。在应用程序的任何地方,您都可以使用:

[[SingletonClass sharedClass] sharedVar];

访问它。

于 2012-05-02T20:02:39.990 回答