如何把视图 - 控制(视图控制器)?(How to push viewcontroller ( vi

2019-09-02 05:59发布

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

方法1:

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

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

方式二:

    #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?

建议和意见是公开邀请。

请评论和投票。

Answer 1:

方法1更简单。

方式2可让第一控制器保持于所按下的视图控制器的引用。 如果你需要引用,那么这将是有益的。

这里没有明确的答案。 这取决于你的需求。 一般的规则,当然,是为了让代码尽可能简单,而不是简单一些。



Answer 2:

嗯......为了让事情变得简单,为什么不干脆:

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

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


文章来源: How to push viewcontroller ( view controller )?