2014-10-10 4 views
0

У меня есть пользовательский вид (.xib и .swift), и я хочу использовать его в разных ViewControllers и как пользовательский cellview. вещь, я не знаю, как это сделать: P. может кто-нибудь, пожалуйста, помогите мне, как это сделать?UIView в ViewController с использованием swift

мой пользовательский взгляд RestaurantVie, у меня есть этикетки и изображения: ` класс RestaurantView: UIView {

@IBOutlet var view: UIView! 

@IBOutlet weak var imgLogo: UIImageView! 
@IBOutlet weak var imgRating: UIImageView! 

@IBOutlet weak var lblName: UILabel! 
@IBOutlet weak var lblComments: UILabel! 
@IBOutlet weak var lblMinimumOrder: UILabel! 
@IBOutlet weak var lblDeliveryCost: UILabel! 
@IBOutlet weak var lblStatus: UILabel! 

/* 
// Only override drawRect: if you perform custom drawing. 
// An empty implementation adversely affects performance during animation. 
override func drawRect(rect: CGRect) 
{ 
    // Drawing code 
} 
*/ 

} `

Я хочу, чтобы положить, что в RestaurantViewcontroller:

` класс RestaurantViewController: UIViewController {

@IBOutlet weak var restaurant: RestaurantView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    let subviewArray = NSBundle.mainBundle().loadNibNamed("RestaurantView", owner: self, options: nil) 
    let filtersView : RestaurantView = subviewArray[0] as RestaurantView 
    self.view.addSubview(filtersView) 

    // Do any additional setup after loading the view. 
} 

`

Но когда я запустить приложение, он выходит из строя. выдавался сообщение:

* Нагрузочное приложение из-за неперехваченное исключение «NSUnknownKeyException», причина: "[SetValue: forUndefinedKey]: этот класс не является значением ключа кодирования совместимым для ключа imgLogo. * Первый стек бросить вызов:

и т.д ....

ответ

1

Каждый вид должен иметь владельца. Предположим, вы создали подкласс UIView под названием CustomView. Затем вы создали файл Xib с тем же именем.

1) Войдите в свой Xib-файл, выберите вид сверху и установите класс CustomView в инспекторе идентификации. Теперь представление в вашем файле Xib будет связано с вашим быстрым файлом CustomView.

2) Чтобы создать экземпляр этого представления, вам необходим владелец для представления. В большинстве случаев владелец является контроллером вида, поэтому в вашем контроллере представления вы можете использовать этот фрагмент код:

let subviewArray = NSBundle.mainBundle().loadNibNamed("CustomView", owner: self, options: nil) 
let filtersView : CustomView = subviewArray[0] as CustomView 
self.view.addSubview(filtersView) 

Надеется, что это помогает!

+1

*** Завершение приложения из-за неперехваченного исключения «NSUnknownKeyException», причина: '[ setValue: forUndefinedKey:]: этот класс не является ключевым значением, совместимым с кодировкой для ключа imgLogo.' *** Первый стек вызовов броска: – Opticon

Смежные вопросы