【问题标题】:How to push viewcontroller ( view controller )?如何推送视图控制器(视图控制器)?
【发布时间】:2010-12-11 06:51:42
【问题描述】:

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

方式一:

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 的最佳方式是什么? 方式一还是方式二?

公开征求意见和建议。

请评论和投票。

【问题讨论】:

    标签: iphone objective-c cocoa-touch memory-management uiviewcontroller


    【解决方案1】:

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

    MyViewController* viewController = [[MyViewController alloc] init];
    
    [self.navigationController pushViewController:viewController animated:YES];
    [viewController release];
    

    【讨论】:

      【解决方案2】:

      方式1更简单。

      方式 2 让第一个控制器保留对推送视图控制器的引用。如果您需要该参考,那么这将很有用。

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

      【讨论】:

        猜你喜欢
        • 2016-10-22
        • 1970-01-01
        • 1970-01-01
        • 2023-04-09
        • 1970-01-01
        • 2014-01-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多