2011-05-12 2 views
3

У меня есть собственное представление панели инструментов, которое я храню в своем собственном файле nib. Я хочу использовать эту панель инструментов в других наконечниках. Можно ли просто взглянуть на какой-то вид в виде подвью в главном файле nib и загрузить в него панель инструментов? Предпочтительно в построителе интерфейса.Загрузка подвью из файла nib в построителе интерфейса

Благодаря

ответ

2

Похоже, у вас есть один вид в вашем СИБ файл, и вы хотите, чтобы иметь возможность загружать экземпляр этой точки зрения в различных местах в вашем приложении ,

Вот Чё делать:

Во-первых, в файле бобах, изменить владельца класса самого файла к UIViewController, и установить пользовательский вид, как вид собственности владельца файла.

Затем в контроллере представления, где вы хотите использовать экземпляр пользовательского зрения, выполните следующие действия:

UIViewController *vc = [[UIViewController alloc] initWithNibName:@"YourCustomNib" bundle:nil]; 
UIView *yourCustomView = vc.view; 
[vc release]; 

Я знаю, что кажется отчасти Hacky, но я слышал, что это на самом деле один из «правильные» способы загрузки одного изображения из наконечника. Я использую этот метод, когда у меня есть пользовательские ячейки tableview в nib.

+0

Единственное, что в моем файле nib - это панель инструментов с кнопками. Я сделал это мнение диспетчера представлений. Тогда в nib мне нужно включить это, у меня было пустое представление, на которое я ссылаюсь. Я выделил контроллер вида с именем nib, как указано выше, и настроил self.toolbar на представление пользовательской панели инструментов. Он не появляется. Это находится в viewDidLoad. – smokingoyster

+0

Я получил эту работу, добавив [self.view addSubview: yourCustomView]; к нему. Это означает, что я не могу рассчитывать на построитель интерфейса для фрейма. К счастью, это панель инструментов, которая всегда будет равна 0,0. Так что ничего страшного. – smokingoyster

+0

Я думаю, что знаю, что вы имеете в виду ... вы не можете действительно ссылаться на представление панели инструментов из другого наконечника. Вы должны вставить его в код. Обычно я делаю то же самое: используйте представление-заполнитель с правильным фреймом, а затем используйте его в viewController для позиционирования пользовательского представления. – CharlieMezak

3

обычай панель инструментов присутствует в отдельном файле бобах? Если да, то вы можете загрузить его самостоятельно в любое время с

NSArray *arr = [[NSBundle mainBundle] loadNibnamed:@"customToolBarNibName" owner:... options:...]; 

UIView *rootView = [arr objectAtIndex: 0]; 
+0

Панель инструментов встроена в отдельный файл. Класс панели инструментов - CustomUIToolbar. Все кнопки подключены к выходам класса CustomUIToolbar. И у меня есть протокол делегатов для любого контроллера вида с помощью панели инструментов. В идеале я бы хотел, чтобы это был плагин Interface Builder, который, по-видимому, больше не поддерживается. Я хочу, чтобы эта панель инструментов появилась в другом представлении в построителе интерфейса, чтобы я мог отслеживать дизайн. – smokingoyster

+0

Это отлично работает, если не считать какой-либо причины, несмотря на фрейм, обозначающий frame = (0 0; 1024 54); панель инструментов заполняет экран. Вот выход NSLog объекта. > – smokingoyster

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