2013-06-22 5 views
0

У меня есть класс MainViewController с простым наконечником. На nib у меня есть только эти несколько объектов. Я установил владельца файла popoverViewController в MainViewController. enter image description hereНужна ясность в объектах NIB-файла

Я поставил класс popoverViewController к моему PVController класса, так что я могу поставить кнопки/код/​​наклейки и т.д. enter image description here

поповер работает отлично, но нечто являются озадачивает меня, который мне нужно помочь Понимаю.

  1. что только что созданный класс PVController имеет метод инициализации, который не является никогда вызывается, когда поповер загружен. Но все еще работает попкор? Если я поставил точки останова в кнопках - (IBAction), они вызываются, когда я нажимаю на них кнопки. Но init никогда не называется. Если я, однако, перейдите к владельцу файла (MainViewController) и сделайте -> PVController * pv = [[OPController alloc] init], только тогда он вызывается. Поэтому мой первый вопрос: возникнут ли какие-либо проблемы, если я сделаю не alloc/init IBOutlet в FileOwner, так как он работает без него (altho метод initontroller не вызван)? И почему он не называется?
  2. Если i сделал, решите создать этот IBOutlet в FileOwner для реферирующего выхода контроллера Popover View, могу ли я сделать его таким же сильным? или слабый? Мои noobish инстинкты говорят мне слабым, потому что она уже принадлежит СИБУ, но когда я поставил слабым, я получаю желтую ошибку рядом с INIT в IBOutlet говоря сообщение

enter image description here

+0

Прочтите следующее: http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Archiving/Articles/codingobjects.html (поскольку объект не архивируется из файла NIB ...) – Wain

+0

: [почему init-метод настраиваемой ячейки таблицы на основе ниба не вызван] (http://stackoverflow.com/q/6942152/335858). – dasblinkenlight

+0

Вы также должны прочитать [Руководство по программированию ресурсов] (http://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/LoadingResources/), в котором, среди прочего, объясняются правильные правила владения, используемые для использования с nib объектов. –

ответ

1

Так что мой Первый вопрос: возникнут ли какие-либо проблемы, если я не выделяю/не запускаю IBOutlet в FileOwner

НЕТ, проблем не возникнет. Infact IBOutlets никогда не выделяют + init вручную.

+0

спасибо. ОК. так что одна вещь, если мне нужен iVars, инициализированный в методе init, поскольку он не вызывается, потому что он не имеет аналогов из nib, тогда мне нужно идти с подходом № 2? то есть alloc/и init от владельца файла? –

+0

И последняя часть, будет ли IBOutlet сильным? или он должен быть слабым –

+1

Сделать его слабым, поскольку popover уже сохранен его супервизором. –