Pergunta

O gerenciamento de memória é uma questão muito importante no iPhone. Então, eu estou fazendo uma pergunta muito geral. Há duas maneiras de chamar um a viewController de outra classe.

Way 1:

AnotherClassViewController *viewController = [[[AnotherClassViewController alloc] initWithNibName:@"AnotherClassView" bundle:nil] autorelease];

[self.navigationController pushViewController:viewController animated:YES];

Way 2:

    #import "AnotherClassViewController.h"

    @interface ThisClassViewController : UIViewController{

      AnotherClassViewController *myViewController;

    }

    @property (nonatomic, retain) AnotherClassViewController *myViewController;

    @end

    @implementation ThisClassViewController

    @synthesize myViewController;

    - (void) pushAnotherViewController{

    if(self.myViewController == nil){

    AnotherClassViewController *tempViewController = [[AnotherClassViewController alloc] initWithNibName:@"AnotherClassView" bundle:nil];

    self.myViewController = tempViewController;

    [tempViewController release];
    }
    [self.navigationController pushViewController:myViewController animated:YES];
    }

- (void)dealloc{
self.myViewController = nil;
}
@end

Assim, a pergunta óbvia é: qual é a melhor maneira de chamar a viewController de outra classe? WAY1 ou Way2?

Sugestões e comentários são abertamente convidou.

Por favor, comentar e votar.

Foi útil?

Solução

Way 1 é mais simples.

Way 2 permite que o primeiro controlador de manter uma referência para o controlador de vista empurrado. Se você precisa que a referência, então isso seria útil.

Não há uma resposta clara aqui. Ela depende de suas necessidades. A regra geral, é claro, é para tornar o código mais simples possível, mas não mais simples.

Outras dicas

Hmm ... Para manter as coisas simples, porque não basta:

MyViewController* viewController = [[MyViewController alloc] init];

[self.navigationController pushViewController:viewController animated:YES];
[viewController release];
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top