문제

메모리 관리는 iPhone에서 매우 중요한 문제입니다. 그래서 나는 매우 일반적인 질문을하고 있습니다. 다른 클래스의 ViewController를 호출하는 두 가지 방법이 있습니다.

방법 1 :

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

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

2 : 웨이 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

그렇다면 명백한 질문은 다른 클래스의 ViewController를 호출하는 가장 좋은 방법은 무엇입니까? way1 또는 way2?

제안과 의견이 공개적으로 초대됩니다.

의견을 제시하고 투표하십시오.

도움이 되었습니까?

해결책

방법 1은 더 간단합니다.

웨이 2를 사용하면 첫 번째 컨트롤러가 푸시 뷰 컨트롤러에 대한 참조를 유지할 수 있습니다. 그 참조가 필요하면 유용 할 것입니다.

여기에는 명확한 대답이 없습니다. 그것은 당신의 필요에 따라 다릅니다. 물론 일반적인 규칙은 코드를 가능한 한 간단하게 만드는 것입니다.

다른 팁

흠 ... 물건을 단순하게 유지하려면 왜 그런지

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

[self.navigationController pushViewController:viewController animated:YES];
[viewController release];
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top