2017-08-09 23 views
0

我是新来迅速数据传递的tableview细胞标签栏视图控制器在斯威夫特

的tableview中包含多个图像做工精细此代码:

   override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

        let cell = tableView.dequeueReusableCell(withIdentifier: "Media", for: indexPath)as! MediaCustomTableViewCell    
        let row = indexPath.row      
        let media = Mediainfo[row] as MediaEvent     
        cell.DisplayDate.text = media.date     
        cell.DisplayName.text = media.eventName      
        cell.selectionStyle = .none       
        cell.DisplayImage.downloadImageFrom(link:media.bannerImages, contentMode: UIViewContentMode.scaleAspectFit) 

        return cell 
       } 


       override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { 
        return CGFloat.leastNormalMagnitude 
       } 


       override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
       {      
        let media = Mediainfo[(indexPath.row)] as MediaEvent       
        let ImageStoryboard = UIStoryboard(name: "Main", bundle: nil)      
        let ImageController = ImageStoryboard.instantiateViewController(withIdentifier: "IMAGESCOL")as!ImagesCollectionViewController 

在这里,我传递一个图像到集合视图,但它不工作:

    ImageController.RecivedData1 = media.bannerImages            
        let storyboard = UIStoryboard(name: "Main", bundle: nil)      
        let tabcontroller = storyboard.instantiateViewController(withIdentifier: "IMAGEVID") as! UITabBarController 

        navigationController?.pushViewController(tabcontroller, animated: true) 

       } 

在tableview单元格图像中选择任何图像后,应显示在标签栏与集合视图。我显示的图像和视频类明智的,我可以使用标签栏控制器

数据传递到:

泰伯维--->标签栏控制器===> 2点收集意见

如何传递tableview图像数据使用标签栏控制器进行收集?

回答

0

在你的代码

let ImageStoryboard = UIStoryboard(name: "Main", bundle: nil) 
let ImageController = ImageStoryboard.instantiateViewController(withIdentifier: "IMAGESCOL") as! ImagesCollectionViewController 
ImageController.RecivedData1 = media.bannerImages 

这些代码剂量没有预期的,因为你声明ImageController,但你不使用它(目前它)。

因此,根据上下文,我假设你有一个Main.storyboardUITabBarControllerUITabBarController有两个UIViewController,一个是ImageController。如果我的假设是正确的,你可以试试下面的代码:

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let tabBarController = storyboard.instantiateViewController(withIdentifier: "IMAGEVID") as! UITabBarController 

// You should access the `imageController` through your `tabBarController`, 
// not instantiate it from storyboard. 
if let viewControllers = tabBarController.viewControllers, 
    let imageController = viewControllers.first as? ImageController { 
    imageController.recivedData1 = media.bannerImages 
} 

navigationController?.pushViewController(tabBarController, animated: true) 

另一个建议是,你应该使用驼峰命名你的属性。有关更多详细信息,请参阅this style guideline

+0

感谢Bro工作正常..... – raj

+0

@ mrfour如何发送数据到标签视图控制器第二视图控制器,我可以尝试viewControllers.first作为viewControllers.second它不工作 – raj

+0

让imageController1 = viewControllers [1] as? VideosCollectionViewController我做到了这一点,它工作良好的兄弟.... – raj

相关问题