使用 segue 表单 UITabBarItem 传递数据不起作用

Posted

技术标签:

【中文标题】使用 segue 表单 UITabBarItem 传递数据不起作用【英文标题】:Pass data with segue form UITabBarItem not working 【发布时间】:2015-09-11 15:50:22 【问题描述】:

我想将数据从一个 UIView 传递到另一个 UIView,以便访问根据用户选择的 UITabBarItem 不同的网站。我该怎么做?

func pathButton(dcPathButton: DCPathButton!, clickItemButtonAtIndex itemButtonIndex: UInt) 

    switch itemButtonIndex 

    case 0:

     // working but can’t send data with it
     self.performSegueWithIdentifier("goto", sender: self) 

     // not working as function is not trigger
    func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) 
        if segue.identifier == "goto" 
            let vc = segue.destinationViewController as! WebMainViewController
            vc.goURL = "http://google.com“

        dcPathButton.delegate = self

        println(“go to http//google.com”)
        
    case 1:
        println(“go to http://apple.com”)
    case 2:
        println(“go to http://imbd.com”)
    case 3:
        println(“go to http://facebook.com”)
    default:
        println(“go to http://cnn.com”)
    

【问题讨论】:

【参考方案1】:

你试过了吗

func pathButton(dcPathButton: DCPathButton!, clickItemButtonAtIndex itemButtonIndex: UInt) 
switch itemButtonIndex 
case 0:
   self.performSegueWithIdentifier("goto", sender: self) 
   // plus other cases

然后在你的类的不同部分实现:

func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) 
    if segue.identifier == "goto" 
        let vc = segue.destinationViewController as! WebMainViewController
        vc.goURL = "http://google.com“

显然确保您的 segue 已连接并将“goto”设置为标识符

也许您可以在prepareForSegue 中设置一些逻辑来设置vc.goURL,而不是您当前拥有的switch 语句?例如,用户选择了一个特定的值,您将该值保存到一个变量中,然后当他们单击按钮启动 segue 时,您检查该变量的值并相应地设置vc.goURL

【讨论】:

以上是关于使用 segue 表单 UITabBarItem 传递数据不起作用的主要内容,如果未能解决你的问题,请参考以下文章

模态 Segue 表单工作表模糊背景

加载没有 Segue 的视图表单 StoryBoard

如何使用自定义 UIImage 作为 UITabBarItem 徽章?

本机 UITabBarItem 上使用的字体设置是啥

如何使用 Apple 自定义 UITabBarItem 图像?

UITabBarItem 的标签