2016-06-01 2 views
1

Я хочу, чтобы TableViewController появлялся внутри сцены всякий раз, когда я нажимаю на определенный узел в виде небольшого окна. Я создал класс TableViewController для его настройки. Вот мой код внутри SkScene:Использование TableViewController внутри SKScene

 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 
    } 
} 

Проблема в том, что появляется UIView, который должен содержать TableView, но сама таблица не делает. Буду признателен за любую помощь или даже если у кого-то есть лучший способ добиться того, чего я хочу.

ответ

0

Вы должны быть установлен в значение navViews/Tableview кадра на основе границ вашего FrameView.

Какой будет (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

Смежные вопросы