gpt4 book ai didi

ios - SplitViewController 的 DetailViewController 中的 IBOutlet nil

转载 作者:行者123 更新时间:2023-11-28 08:57:34 28 4
gpt4 key购买 nike

当使用 SplitViewController 时,通过我的 DetailViewController 中的 IBOutlet 连接的图像为零。

我正在使用一种协议(protocol)在 MasterViewController 和 DetailViewController 之间进行通信

protocol EventSelectedDelegate: class {
func eventSelected(event: Event)
}


override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

if segue.identifier == "eventDetailsSegue" {

let controller = (segue.destinationViewController as! UINavigationController).topViewController as! DetailViewController

let selectedIndex = self.eventTableView!.indexPathForCell(sender as! UITableViewCell)
let event = self.events[selectedIndex!.row]

self.delegate = controller
self.delegate?.eventSelected(event)

controller.navigationItem.leftBarButtonItem = self.splitViewController?.displayModeButtonItem()
controller.navigationItem.leftItemsSupplementBackButton = true
}
}

并在 DetailViewController 中实现该方法

class DetailViewController: UIViewController, EventSelectedDelegate {

private var event : Event?
@IBOutlet weak var eventImage: UIImageView!

func eventSelected(event: Event) {
self.event = event
self.configure()
}

func configure() {
if let event = self.event {
self.title = event.name

if let eventImage = self.eventImage {
eventImage.image = event.image // <--- Never reached.
}
}
}
}

示例 SplitViewController 工作正常,其中 UILabel 通过 IBOutlet 连接。

示例代码和我的代码之间的唯一区别是,我有一个单独的 UISplitViewController 部分 Storyboard,我正在将其加载到我的 AppDelegate.swift 文件中

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)

let storyboard = UIStoryboard(name: "MyBundle", bundle: NSBundle(identifier: "com.example.MyBundle"))
self.window?.rootViewController = storyboard.instantiateInitialViewController()
self.window?.makeKeyAndVisible()

return true
}

我正在使用 XCode 7 和 Swift 2。有人有什么想法吗?

最佳答案

我能想到的唯一问题是,你的 self.eventImage 是 nil 并且它是一个隐式展开的可选,属性 self.eventImage 当你的 Storyboard中的 View Controller 被初始化时被初始化。

如果您在 Storyboard中有不同的 View Controller 用于 Detail VC,请尝试为其创建一个对象并将其分配给 Detail VC 并尝试。希望这会有所帮助。

关于ios - SplitViewController 的 DetailViewController 中的 IBOutlet nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32708531/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com