2016-06-09 88 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'方法中设置断点,检查条件是真还是假? –

相关问题