Really need your help! I've been through every possible post addressing this issue and nothing seems to work.
So I'm using a .xib file to create a subview within ProfileFoldingCellView.swift, which works perfectly until I attempt to add an IBOutlet in the same class. Here's the code:
import Foundation
import UIKit
class ProfileFoldingCellView: UIView {
@IBOutlet var mainLabel: UILabel!
public var cellIndex: Int = 0
init(index: Int) {
super.init(frame: CGRect(x: 0, y: 0, width: 0, height: 0))
cellIndex = index
print("Index: \(cellIndex)")
setupContentView()
}
func setupContentView() {
let contentView = UINib(nibName: "ProfileFoldingCellView", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView
contentView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
addSubview(contentView)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupContentView()
}
}
As you can see, the label IBOutlet is created without any issues and there are no other outdated or unused outlets roaming around.
http://imgur.com/a/jb9CA
I've also made sure to set ProfileFoldingCellView.swift as the file owner's class.
Everything runs perfectly until I link the outlet! Then I get this error:
http://imgur.com/a/6hHPG
Trust me, I've tried everything. I've probably re-created the outlet a million times, nothing is working. Any help would be greatly appreciated!
Leave your File's Owner as NSObject
and set your view class as ProfileFoldingCellView
, your mainLabel
should be connected to the UIView
object and not File's Owner
I fixed it!
I simply switched the line
let contentView = UINib(nibName: "ProfileFoldingCellView", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView
with the following:
let contentView = Bundle.main.loadNibNamed("ProfileFoldingCellView", owner: self, options: nil)?[0] as! UIView
I kept the file owner's class as ProfileFoldingCellView
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With