我目前有一个按钮设置为TableViewController,但我决定将TableViewController嵌入到TabBarController中。在我这样做之前,我在之前的ViewController中使用了这段代码。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "showListSegue"){
let des = segue.destinationViewController as! TableViewController
des.jsonfile = self.jsonfile
}
}
现在,当我尝试单击按钮时,它会给我这个错误。
无法转换类型' UITabBarController' (0x111c818b0)到 ' Forkit.TableViewController' (0x10d1b1490)。
我尝试了以下代码但没有成功,因为它给了我这个错误
类型的值" UITabBarController"没有会员' jsonfile'。
let des = segue.destinationViewController as! TableViewController
我怎样才能解决这个问题?
答案 0 :(得分:3)
segue <!DOCTYPE html>
<html>
<head>
<title>Demo Croppie</title>
<link rel="Stylesheet" type="text/css" href="http://foliotek.github.io/Croppie/croppie.css" />
<link rel="Stylesheet" type="text/css" href="http://t4t5.github.io/sweetalert/dist/sweetalert.css" />
</head>
<body>
<div id="vanilla-demo"></div>
<div class="actions">
<button class="vanilla-result">Result</button>
<button class="vanilla-save">Save</button>
<button class="vanilla-rotate" data-deg="-90">Rotate Left</button>
<button class="vanilla-rotate" data-deg="90">Rotate Right</button>
</div>
<div id="result"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="http://foliotek.github.io/Croppie/croppie.js"></script>
<script src="http://t4t5.github.io/sweetalert/dist/sweetalert-dev.js"></script>
</body>
</html>
现在有你的TabBarController,因为它是showListSegue
。这就是它无法将其投射到destinationViewController
的原因,因为它不是您正在寻找的那个。 TabBarController确实包含对您想要的ViewController的引用。您可能有两种选择:
1:使用TableViewController
并在那里找到您的观点,如下所示:
.viewControllers
其中[0]选择您需要哪个选项卡的ViewController。
2:选择正确的标签并使用let tabBarController = segue.destinationViewController as! UITabBarController
let des = tabBarController.viewControllers![0]
.selectedViewController
请注意,您在此处使用可选值,因此要么绝对确保您可以安全地解包,或者内置检查(使用let tabBarController = segue.destinationViewController as! UITabBarController
tabBarController.selectedIndex = 0 // choose which tab is selected
let des = tabBarController.selectedViewController!
和as?
语句进行转换等)。< / p>
答案 1 :(得分:-4)
试试这个
@IBAction func about(sender: AnyObject) {
performSegueWithIdentifier("about", sender: sender)
}