【发布时间】:2014-11-18 08:36:17
【问题描述】:
我正在使用 Xcode 6 和 swift。
我正在尝试将image / UIImage 从我的UITabBarController 传递到其中一个子视图(选项卡)。 Image 本身正在使用 loadImage 函数传递给UITabBarController(在prepareForSegue 期间由另一个 UIViewController 调用)。
//this is the tab bar controller
class DesignerTabBarController : UITabBarController{
var pickedImage : UIImage = UIImage() //empty image
var VC1: DesignerTabController = DesignerTabController.alloc()
func loadImage(passedImage: UIImage){
pickedImage = passedImage
println(pickedImage) // image is accessible from here
}
override func viewDidLoad() {
super.viewDidLoad()
println(pickedImage) //image is accessible from here
VC1.pickedImageView.image = pickedImage // this line gives "unexpectedly found nil when unwrapping optional"
}
}
//this is the `UIViewcontroller` I want display the image (inside pickedImageView)
class DesignerTabController : UIViewController{
@IBOutlet weak var pickedImageView: UIImageView!
}
我意识到我将图像从 UITabBarController 传递到子视图的方式不起作用,即使 Xcode 中没有显示语法错误(当我开始输入时它建议 pickImageView 所以我想我是非常接近解决方案)。
如果无法将数据从我的UITabBarController 传递到(第一个)子视图,我如何将数据直接传递到第一个子视图?正如我上面解释的,我使用 prepareForSegue 从另一个视图传递图像。 prepareForSegue 直接到第一个视图是否适用于我的情况?
非常感谢您的任何建议,我会尝试并返回我的发现。
【问题讨论】:
-
您是否尝试在代码中放置断点并检查变量状态?例如在您的 VC 类中定义一些
- (void)setImage:(UIImage *)image并检查处理。 -
请看上面,我用的是swift。另外,我正在尝试在两个位置打印图像(请参见上面的代码),并且在这两个位置我都可以在控制台中看到图像尺寸(这表明可以从该位置正确访问图像)。我相信我试图将图像传递给子视图的方式会导致错误。谢谢你的回复。
-
VC1 可以访问吗?
标签: ios objective-c xcode swift xcode6