在Master-Detail应用程序中,我想显示一个标题为5个部分的TableView:
你的举动
他们的举动
赢得了比赛
失落的游戏
选项
所以我在Xcode 5.0.2中创建了一个空白的Master-Detail应用程序,然后在它的MasterViewController.m(这是一个UITableViewController)中我正在尝试实现该方法:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { return _titles[section]; }
我的问题是如何初始化NSArray _titles?
我正在尝试使用MasterViewController.m:
#import "MasterViewController.h" #import "DetailViewController.h" static NSArray *_titles_1 = @[ @"Your Move", @"Their Move", @"Won Games", @"Lost Games", @"Options" ]; @interface MasterViewController () { NSMutableArray *_games; NSArray *_titles_2 = @[ @"Your Move", @"Their Move", @"Won Games", @"Lost Games", @"Options" ]; } @end @implementation MasterViewController - (void)awakeFromNib { if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) { self.clearsSelectionOnViewWillAppear = NO; self.preferredContentSize = CGSizeMake(320.0, 600.0); } [super awakeFromNib]; } - (void)viewDidLoad { .... }
但上面的两个尝试都给我语法错误:
更新:
令我惊讶的是,对于这个简单的问题有很多建议,但作为iOS/Objective-C新手,我不确定,哪种解决方案最合适.
dispatch_once
- 在多线程应用程序中执行某些操作不是运行时操作吗?这不是太过分了吗?我期待一个用于启动const数组的编译时解决方案......
viewDidLoad
- 当我的应用程序在后台和前台之间切换时,是不是不必要一次又一次地启动我的const数组?
我不应该更好地设置NSArray
in awakeFromNib
(因为我使用所有ViewControllers的stroyboard场景)?或者也许initSomething
(正确的方法initWithStyle
?)