2016-06-09 80 views
0

我無法將數據從TableViewController傳遞到嵌入在Container View中的另一TableViewController。當我通過在prepareForSegue數據我得到擊中UIViewController類型的「無法施展值TableViewControllerEmbeddedInContainer。我一定要創建一個文件的容器ViewController,並在那裏釣什麼?任何幫助是極大的讚賞。將數據從TableViewController傳遞到嵌入在容器中的另一個TableViewController

enter image description here

在我的第一TableViewController:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

self.myFavText = "My Favorite Text" 
self.performSegueWithIdentifier("favDetails", sender: self) 

} 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
let myDetails = segue.destinationViewController as! TableViewControllerEmbeddedInContainer 
details.myFav = self.myFavText 

} 
+0

您的目的地是VC容器VC不是嵌入式的VC。您需要以某種方式從容器vc中提取嵌入的vc並直接設置文本,或者您可以使用容器視圖做加載來做魔術 –

回答

1

kampbell411,

「我一定要爲Container創建視圖控制器文件,並在那裏釣什麼嗎?」

回答:是的。

「當我通過在prepareForSegue數據我被擊中了‘式的無法施展價值‘的UIViewController到TableViewControllerEmbeddedInContainer’’

答:你不能因爲SEGUE指向到ViewController含UIContainerView和不是視圖控制器內嵌在裏面:)

如何解決:)

創建包含ContainerView視圖控制器類。創建一個IBOutlet的含erView :)

讓我們把它作爲中級班和視圖myContainer中:)

class Intermediate: UIViewController { 

    @IBOutlet var myContainer: UIView! 
    var value : String! 


    //catch the embeded segue get the ViewController reference lets call it as Testing 

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     let test = segue.destinationViewController as! Testing 
     test.value = self.value 
    } 
} 

這將有助於:)

+0

這很好。非常感謝你! – kelsheikh

+0

@ kampbell411:永遠歡迎夥伴:) –

0

使用此代碼,

func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) { 
     self.myFavText = "My Favorite Text" 
     self.performSegueWithIdentifier("favDetails", sender: self) 

} 

您將傳遞Container ViewController類中的值,然後將值分配給TableViewControllerEmbeddedInContainer類。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?){ 

    if (segue.identifier == "favDetails") { 

     var myDetails = segue.destinationViewController as! ContainerViewController 
     myDetails.myFav = self.myFavText 

    } 
} 

希望它有幫助。

+0

感謝您的回覆。在ContainerViewController中,我只需要'var myFav:String!'來捕獲該值?我試了一下,然後分配了值,並得到零。 @Iyyappan – kelsheikh

+0

在'prepareForSegue'方法中設置斷點,檢查條件是真還是假? –

相關問題