從 iOS 5 開始,蘋果在其新的IDE版本中提供了StoryBoard(下面叫故事板)編輯器玖姑,一直存在著一個巨大的缺陷——靜態(tài)單元格只能在SDK內(nèi)置的 UITableViewController 中使用,如果在程序員自己的ViewController中慨菱,靜態(tài)單元格根本不會顯示焰络,甚至于編譯器會提示錯誤信息:
“Illegal Configuration: Static table views are only valid when embedded in UITableViewControllerinstances”。
在自己的 ViewController 中使用靜態(tài)單元格符喝∩帘耍可以利用 Xcode4.5 以后的 Container View , 我們可以將一個包含有靜態(tài)單元格UITableViewController “嵌入”到自己的 ViewController中。
詳細步驟:
1.在故事板中拖入一個普通的ViewController
2.在故事板中拖入一個常規(guī)的 TableViewController 洲劣。
3.在這個 TableViewController 中使用靜態(tài)單元格备蚓。
4.在拖一個Container View 到ViewController中, 添加約束做屏幕適配 ,這個 Container View 會自動帶有一個 segue 指向另一個 ViewController。將 segue 和那個ViewController 都刪除囱稽。設置ViewController為首先啟動項.
Snip20160106_6.png
- 5.右鍵(或ctrl+左鍵)從 Container View 拖一條線到 TableViewController郊尝,然后在彈出的菜單中選擇 Embed。
Snip20160106_4.png
- 6.做到這一步, 很多人不造怎么獲取后面的TableViewController, 下面提供一個簡單方法:
分別給ViewController和TableViewController指定控制器, 在TableViewController想怎么寫代碼就怎么寫, 但是這里注意:- 1)在push進ViewController時候, 加載故事板代碼跟加載 xib 不同
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"SPPersonalViewController" bundle:nil];
SPPersonalViewController *personalViewController = [storyboard instantiateViewControllerWithIdentifier:@"SPPersonalViewController"];
[self.navigationController pushViewController:personalViewController animated:YES];
Snip20160106_14.png
這里的SPPersonalViewController是你的ViewController
SPPersonalTableViewController是你的TableViewController
- ViewController的設置
Snip20160106_12.png
- TableViewController的設置
Snip20160106_13.png
- 然后就可以獲取TableViewController , 在里面愉快地寫數(shù)據(jù)源方法和代理方法了
@interface SPPersonalTableViewController ()<UITableViewDelegate, UITableViewDataSource>
@end
@implementation SPPersonalTableViewController
{
.......
}
@end