没有新的初始化使用类的数据

我有一个TabBar布局,并在主页选项卡,我有一个button“连接”,当按下时发送一个动作到类TransferViewController创build一个GameKit会话。 然后我有另一个选项卡发送,其中有一个button,说“发送文件”,当按下时发送一个动作到类TransferViewController也使用“会话”variables设置使用连接发送文件,但由于它是一个不同的选项卡它创build一个新的控制器实例,它希望我再次连接,但button是在主页选项卡上。

有无论如何,我可以有一个控制器的两个标签没有两个实例? 我希望用户单击主页选项卡上的连接,然后切换到发送选项卡,然后按发送文件并使用另一个选项卡上的连接设置variables。 我很抱歉,如果这是混乱。

这根本不是令人困惑 – 事实上,这一直出现。 在模型 – 视图 – 控制器系统中的工作方式是设置模型类,使其成为单例,并在所有需要共享数据的控制器中添加对该单例的引用。

Model.h

@interface Model : NSObject @property (nonatomic, readwrite) Session *session; -(id)init; +(Model*)instance; @end 

Model.m

 @implementation Model @synthesize isMultiplayer; -(id)init { if(self=[super init]) { self.session = ...; // Get the session } return self; } +(Model*)instance { static dispatch_once_t once; static Model *sharedInstance; dispatch_once(&once, ^{ sharedInstance = [[self alloc] init]; }); return sharedInstance; } @end 

现在,您可以在控制器代码中使用共享会话:导入"Model.h"并写入

 [[Model instance].session connect]; [[Model instance].session sendAction:myAction];