2016-06-01 51 views
1

我希望一個TableViewController出現在場景中,只要我點擊一個特定的節點作爲一個小窗口。我創建了一個TableViewController類來配置它。這裏是我的代碼裏面SkScene:在SKScene中使用TableViewController

 let table = Table() 
     let smallerRect = CGRectMake(100, 100, 200, 100) 
     let navRect = CGRectMake(0, 100, 200, 200) 
     let nav = UINavigationController(rootViewController: table) 
     nav.view.frame = navRect 
     let frameView = UIView(frame: smallerRect) 

     frameView.backgroundColor = UIColor.redColor() 
     table.view.frame = smallerRect 
     frameView.addSubview(nav.view) 
     self.view.addSubview(frameView) 

表類:

出現
import UIKit 

class Table: UITableViewController { 

    var names = ["name1", "name2", "name3"] 

    override func viewDidLoad() { 
    super.viewDidLoad() 

} 
override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
     return 1 
    } 
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return names.count 
    } 


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) 

     cell.textLabel?.text = names[indexPath.row] 

     return cell 
    } 
} 

的問題是,應該包含的tableview了UIView,但表本身並沒有。 我會很感激任何幫助,或者即使有人有更好的方式來實現我想要的。

回答

0

你應該根據你的frameView的邊界來設置你的navViews/tableview框架。

這將是(0,0,200,200)。目前發生的事情是,當你的表格被添加爲你的框架視圖的子視圖時,它被偏移100。所以它被繪製在你的框架視圖範圍之外。

也許是這樣的。

let table = Table() 
    let smallerRect = CGRectMake(100, 100, 200, 100) 
    let navRect = CGRectMake(0, 0, 200, 200) 
    let nav = UINavigationController(rootViewController: table) 
    nav.view.frame = navRect 

    let frameView = UIView(frame: smallerRect) 
    frameView.backgroundColor = UIColor.redColor() 
    table.view.frame = frameView.bounds 

    frameView.addSubview(nav.view) 
    self.view.addSubview(frameView) 

很難知道在沒有您的Table代碼的情況下還能去哪裏。

+0

感謝您的答案,但不是這樣,我用Table類更新了我的問題。 – Abdou023