ENV:xcode6,迅速程序初始化的UITableViewController的一個自定義子類tableviewcell
我試圖用SLPagingViewSwift作爲rootcontroller,並在頁面中的一個,我想用一個自定義的UITableViewController。
我不知道爲什麼它不工作,總是拋出「2015-02-06 23:03:18.228 xiaoyu [4825:46536]由於未捕獲的異常'NSInternalInconsistencyException',終止應用程序,原因:'無法退出具有標識符PersonCell的單元格 - 必須爲該標識符註冊一個筆尖或類別,或者在故事板「」中連接原型單元格,並且我已經在故事板中將標識符定義爲'PersonCell'。
這裏是主controlelr代碼:
var controller: SLPagingViewSwift?
var ctr1 = PersonTableViewController()
var ctr2 = UIViewController()
var ctr3 = UIViewController()
override func viewDidLoad() {
super.viewDidLoad()
var navTitleLabel1 = UILabel()
navTitleLabel1.text = "Home"
navTitleLabel1.font = UIFont(name: "Helvetica", size: 20)
navTitleLabel1.textColor = UIColor.whiteColor()
var navTitleLabel2 = UILabel()
navTitleLabel2.text = "Discover"
navTitleLabel2.font = UIFont(name: "Helvetica", size: 20)
navTitleLabel2.textColor = UIColor.whiteColor()
var navTitleLabel3 = UILabel()
navTitleLabel3.text = "Activity"
navTitleLabel3.font = UIFont(name: "Helvetica", size: 20)
navTitleLabel3.textColor = UIColor.whiteColor()
var orange = UIColor(red: 255/255, green: 69.0/255, blue: 0.0/255, alpha: 1.0)
var gray = UIColor(red: 0.84, green: 0.84, blue: 0.84, alpha: 1.0)
ctr1.title = "Ctr1"
ctr1.view.backgroundColor = UIColor.whiteColor()
ctr2.title = "Ctr2"
ctr2.view.backgroundColor = UIColor.yellowColor()
ctr3.title = "Ctr3"
ctr3.view.backgroundColor = UIColor.blueColor()
controller = SLPagingViewSwift(items: [navTitleLabel1, navTitleLabel2, navTitleLabel3], controllers: [ctr1,ctr2,ctr3], showPageControl: false)
controller?.currentPageControlColor = UIColor.whiteColor()
controller?.tintPageControlColor = UIColor(white: 0.799, alpha: 1.0)
controller?.pagingViewMoving = ({ subviews in
for v in subviews {
var lbl = v as UILabel
var c = gray
if(lbl.frame.origin.x > 45 && lbl.frame.origin.x < 145) {
c = self.gradient(Double(lbl.frame.origin.x), topX: Double(46), bottomX: Double(144), initC: orange, goal: gray)
}
else if (lbl.frame.origin.x > 145 && lbl.frame.origin.x < 245) {
c = self.gradient(Double(lbl.frame.origin.x), topX: Double(146), bottomX: Double(244), initC: gray, goal: orange)
}
else if(lbl.frame.origin.x == 145){
c = orange
}
lbl.textColor = c
}
})
controller?.didChangedPage = ({ currentIndex in
println(currentIndex)
})
self.setViewControllers([controller!], animated: true)
}
PersonTableViewController是自定義TableViewController,並在控制器,我使用自定義tableviewcell。
下面是代碼爲PersonTableViewController:
override func viewDidLoad() {
super.viewDidLoad()
// Uncomment the following line to preserve selection between presentations
// self.clearsSelectionOnViewWillAppear = false
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Potentially incomplete method implementation.
// Return the number of sections.
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete method implementation.
// Return the number of rows in the section.
return 1
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("PersonCell", forIndexPath: indexPath) as PersonTableViewCell
cell.name.text = "aaa"
return cell
}
有沒有從你的tableview包含PersonCell到你的表視圖的出口(在故事板)試圖離開? – timgcarlson 2015-02-06 15:42:30
是的。事情是,如果我不使用SLPagingViewSwift作爲根控制器,它可以正常工作,這意味着我的自定義PersonTableViewController由故事板初始化,而不是由我自己初始化。 – des 2015-02-07 01:49:14