我应该在-initWithNibName中设置哪些UIViewController属性:bundle:vs -viewDidLoad?

时间:2011-09-04 22:34:43

标签: uiviewcontroller init viewdidload viewdidunload

我知道我应该set self.title in -initWithNibName:bundle:

  1. self.navigationItem.titleView怎么样?

    由于self.navigationItem.titleView似乎仅在加载self.view时使用,因此我认为为了节省内存,我应该在self.navigationItem.titleView中设置-viewDidLoad并将其设为零-viewDidUnload,例如:

    - (void)viewDidLoad {
        [super viewDidLoad];
        self.navigationItem.titleView = [[UIImageView alloc] initWithImage:
                                         [UIImage imageNamed:@"logo.png"]];
    }
    
    - (void)viewDidUnload {
        self.navigationItem.titleView = nil;
        [super viewDidUnload];
    }
    
  2. self.navigationItem.backBarButtonItem

  3. 怎么样?

1 个答案:

答案 0 :(得分:1)

  1. 似乎可以在self.navigationItem.titleView中设置-viewDidLoad并在-viewDidUnload中将其设为零。

  2. 您应该在self.navigationItem.backBarButtonItem中设置-initWithNibName:bundle,因为如果您推送两个没有动画-viewDidLoad的视图控制器,则不会调用第一个被推送的视图控制器。因此,如果该视图控制器在self.navigationItem.backBarButtonItem中设置-viewDidLoad,它实际上将不会被设置,并且第二个视图控制器上的后退按钮将像往常一样默认为第一个视图控制器的标题。 / p>