2015-05-19 73 views
0

我是新來的swift,並試圖創建一個應用程序與表視圖,可以使用從另一個UIView控制器的視圖。Swift使用視圖從其他控制器作爲一個uitableview的背景

  1. 它可行嗎?
  2. 如果是這樣,請幫助我,我附上了我的主控制器的代碼。請讓我知道是否有什麼錯誤?

非常感謝。

import UIKit 

class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate { 

@IBOutlet weak var tableView: UITableView! 
var numbers:[String] = [] 
let vc = bgViewController() 
override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    tableView.backgroundView = vc.view 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
    return 1 
} 

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    if(numbers.count == 0){ 
     tableView.backgroundView?.hidden = false 
     println("1") 
    } 
    else{ 
     tableView.backgroundView?.hidden = true 
    } 
    return numbers.count 
} 

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

    return cell 
} 


} 
+0

您不應該像創建vc = bgViewController()一樣創建vc。使用nibname方法或通過故事板實例化。 – Amit89

+0

謝謝你的幫助。我在故事板中創建了另一個viewController,並將該類更改爲bgViewController,我爲其創建了一個單獨的文件。它是否正確? –

回答

0
import UIKit 

class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate { 

@IBOutlet weak var tableView: UITableView! 
var numbers:[String] = [] 
var vc: bgViewController! 
override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
vc = self.storyboard.instantiateViewControllerWithIdentifier("bgViewController") as! bgViewController 

    tableView.backgroundView = vc.view 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
    return 1 
} 

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    if(numbers.count == 0){ 
     tableView.backgroundView?.hidden = false 
     println("1") 
    } 
    else{ 
     tableView.backgroundView?.hidden = true 
    } 
    return numbers.count 
} 

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

    return cell 
} 


} 

在attribure檢查員提供故事板標識符作爲bgViewController。

+0

非常感謝!但是這給了我一個錯誤,說類ViewController沒有初始化器 –

+0

轉換爲let。 var vc:bgViewController!現在嘗試。 – Amit89

+0

謝謝!它抓住另一個viewController的視圖。 –

相關問題