繁体   English   中英

如何推送viewcontroller(视图控制器)?

[英]How to push viewcontroller ( view controller )?

内存管理是iPhone中非常重要的问题。 所以我问一个非常普遍的问题。 有两种方法可以调用另一个类的viewController。

方式1:

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

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

方式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?

公开邀请建议和意见。

请评论并投票。

嗯......为了简单起见,为什么不呢:

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

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

方式1更简单。

方式2允许第一个控制器保持对推动的视图控制器的引用。 如果您需要该参考,那么这将是有用的。

这里没有明确的答案。 这取决于您的需求。 当然,一般规则是使代码尽可能简单,但并不简单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM