Use dados da class sem uma nova boot

Eu tenho um layout TabBar e na aba Início eu tenho um botão “Connect” que quando pressionado envia uma ação para a class TransferViewController para criar uma session GameKit. Então eu tenho outra aba chamada Enviar que tem um botão que diz “Enviar Arquivo”, que quando pressionado envia uma ação para a class TransferViewController também que usa a variável “Session” que foi configurado usando conectar para enviar um arquivo, mas uma vez que é um diferente tab cria uma nova instância do Controlador e quer que eu conecte novamente, mas o botão está na guia Início.

Existe alguma maneira que eu posso ter um controlador para duas guias sem ter duas instâncias? Eu quero que o usuário clique em conectar na guia Início, em seguida, mude para a guia Enviar e pressione Enviar Arquivo e use as configurações de variables ​​conectando na outra guia. Me desculpe se isso é confuso.

Isso não é confuso – na verdade, isso acontece o tempo todo. A maneira como isso funciona nos sistemas de controlador de exibição de modelo é que você configura uma class de modelo, a transforma em um singleton e adiciona referências a esse singleton em todos os controladores que precisam compartilhar os dados.

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 

Agora você pode usar a session compartilhada no código do seu controlador: import "Model.h" , e write

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