2012-06-17 3 views
0

Я создал 4 xibs ширины 200, высота 200 с целью ... но если я хочу загрузить все xib в одном xib, я не знаю, для достижения этого. У меня есть пара идейКак загрузить несколько xib в одном xib?

1. Можем ли мы все xib загружать по группам массивов?

2.Can мы объявляем NSBUNDLE код на appdelegate.m файл? ..

+0

Вы изучали раскадровки? Они представляют собой, по существу, коллекции xibs, с некоторыми причудливыми новыми функциями, такими как отсутствие необходимости в кодах навигации между ними и т. Д. Есть ли причина, по которой раскадровки не были бы вариантом? –

+0

@ctrahey: yes ... У меня развернулось симулятор ios4.3. Я знаю, что он не поддерживает концепцию раскадровки ... – Dany

ответ

2

каждый XIB должен иметь класс для управления им. Итак, теперь у вас должно быть 4 файла xib, 4 .h и 4 .m. Теперь создайте другой контроллер представления с xib, .m и .h (MainViewController). Теперь импортируйте весь класс. в MainController.h

#import <UIKit/UIKit.h> 
#import "Xib1Class.h" 
#import "Xib2Class.h" 
#import "Xib3Class.h" 
#import "Xib4Class.h" 

@interface MainViewController : UIViewController { 

    Xib1Class *xib1Class; 
    Xib2Class *xib2Class; 
    Xib3Class *xib3Class; 
    Xib4Class *xib4Class; 

} 

@end 

в viewDidLoad из MainViewController.m

xib1Class = [[Xib1Class alloc] initWithNibName:@"Xib1Class" bundle:nil]; 
xib2Class = [[Xib2Class alloc] initWithNibName:@"Xib2Class" bundle:nil]; 
xib3Class = [[Xib3Class alloc] initWithNibName:@"Xib3Class" bundle:nil]; 
xib4Class = [[Xib4Class alloc] initWithNibName:@"Xib4Class" bundle:nil]; 

//set the frame 
xib1Class.view.frame = CGRectMake(x,y,w,h); 
.......... 
//put in main view 
[self.view addSubView:xib1class.view]; 
//the same for 2-3-4 

запомнить для управления памятью. Надеюсь, что это поможет.

+0

Это работает .. Очень много ... – Dany

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