使用 SDK 6.1、Xcode 4.6.1,我制作了一个新项目 Master-Detail iOS App,ARC,没有故事板。
然后在DetailViewController
, 在s 中viewDidLoad
添加两个s并确保第二个像这样隐藏:UITableView
UIViewController
- (void)viewDidLoad
{
[super viewDidLoad];
UIViewController *lViewController1 = [[UIViewController alloc] init];
UITableView *lTableView1 = [[UITableView alloc] initWithFrame: self.view.frame];
lTableView1.scrollsToTop = YES;
[lViewController1.view addSubview: lTableView1];
lTableView1.dataSource = self;
[self.view addSubview: lViewController1.view];
[self addChildViewController: lViewController1];
UIViewController *lViewController2 = [[UIViewController alloc] init];
UITableView *lTableView2 = [[UITableView alloc] initWithFrame: self.view.frame];
lTableView2.scrollsToTop = YES;
[lViewController2.view addSubview: lTableView2];
lTableView2.dataSource = self;
[self.view addSubview: lViewController2.view];
[self addChildViewController: lViewController2];
// now hide the view in view controller 2
lViewController2.view.hidden = YES;
}
(我确保DetailViewController
是一个数据源,它返回 100 行UITableViewCell
s 并textLabel.text
设置为@"hello"
)
第二个视图控制器的存在使得scrollsToTop
(点击状态栏)不再起作用。如果我不使用UIViewController
遏制并且只添加两个UITableView
s 并将第二个设置为隐藏,scrollsToTop
则可以。
我究竟做错了什么?