viewDidLoad不会被调用

时间:2014-04-29 18:48:49

标签: ios objective-c

我的视图控制器实现BNRDetailViewController.m中包含此代码:

//
//  BNRDetailViewController.m
//  Homepwner
//
//  Created by Dylan Jhaveri on 4/22/14.
//  Copyright (c) 2014 Dylan Jhaveri. All rights reserved.
//

#import "BNRDetailViewController.h"
#import "BNRItem.h"
#import "BNRImageStore.h"

@implementation BNRDetailViewController

- (void)viewDidload
{
    [super viewDidLoad];
    NSLog(@"view did load");
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    NSLog(@"view did appear");
}

@end

当我启动模拟器并导航到模拟器中的DetailView时,我看到“视图将出现”的日志,但我从未看到“视图加载”的日志。

这是来自ItemsViewController的代码,这是UITableViewController的子类:

#import "BNRItemsViewController.h"
#import "BNRDetailViewController.h"
#import "BNRItemStore.h"
#import "BNRItem.h"

@interface BNRItemsViewController () <UITableViewDelegate>

@end

@implementation BNRItemsViewController
- (void) tableView:(UITableView *)tableView
        didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//init detailViewController and set `item`
BNRDetailViewController *detailViewController = [[BNRDetailViewController alloc] init];
NSArray *items = [[BNRItemStore sharedStore] allItems];
detailViewController.item = items[indexPath.row];

[self.navigationController pushViewController:detailViewController
                                     animated:YES];
}

P.S。我正在为此视图BNRDetailViewController.xib使用NIB(.xib)文件。此NIB文件的文件所有者设置为BNRDetailViewController

整个.m文件位于:https://gist.github.com/dylanjha/09c234adf536667d9564

编辑:添加了super来电和@implementation@end#import

2 个答案:

答案 0 :(得分:3)

原因是viewDidloadviewDidLoad不同。如果存在,运行时将调用后者 - 但不是前者,这就是你所拥有的。

答案 1 :(得分:1)

viewDidload我必须是资本。它将是-(void)viewDidLoad