2015-10-28 2 views
0

Я пытаюсь показать ViewController в ContainerView. Если я использую внутренний ViewController (источник в том же проекте, что и ContainerView), он будет работать должным образом. Так что я использую ViewController из другого проекта, он не будет показан. Я внедрил AlertDialog в viewDidLoad внешнего ViewController и будет показан AlterDialog.Показать ViewController в ContainerView

EDIT: Я узнал, что мне нужно добавить xix внешнего ViewController, в Copy Bundle Resouces in Build Phases (в основном проекте). Есть ли другой способ решить эту проблему?

Код:

#import "ViewController.h" 
#import "Utilities/Form.h" 
#import "TestForm.h" 

@interface ViewController() 

@end 

@implementation ViewController 
@synthesize ListContainer = _ListContainer; 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    @try { 

     Form *viewConnection = [[Form alloc]init]; 
     viewConnection.view.frame = _ListContainer.bounds; 
     [_ListContainer addSubview:viewConnection.view]; 
     [self addChildViewController:viewConnection]; 
     [viewConnection didMoveToParentViewController:self]; 
    } 
    @catch (NSException *exception) { 
      } 
    @finally { 


    } 
} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 

ответ

0

Alloc/инициализации почти всегда неправильный способ создать контроллер представления. Он не предоставляет XIB-файл или раскадровку, содержащую содержимое представления. Вероятно, вы должны предоставить собственный метод init в своем классе Form, который вы можете вызвать, который использует instantiateViewControllerWithIdentifier для создания контроллера вида из раскадровки другого проекта или initWithNibName:bundle:, чтобы создать его с помощью наконечника.

+0

Спасибо за ваш быстрый ответ, но с вашим решением не будет отображаться слишком. Я спрашиваю себя, почему он работает, если я использую внутреннюю форму, но если я использую внешнюю форму, она не работает – bengt91

+0

«внутренняя форма»? «внешняя форма»? Что означают эти термины? –

+0

Внутренняя форма - это viewcontroller внутри моего основного проекта, внешний - это viewcontroller внутри включенного проекта Framework. – bengt91

0

Наконец-то получил!
Как упоминал Дункан С, мне пришлось написать свой собственный init.
Следующий код является результатом:

// 
// Form.m 
// Utilities 

#import "Form.h" 

@interface Form() 

@end 

@implementation Form 

-(id)init 
{ 
    NSBundle* resourcesBundle = [NSBundle bundleForClass:[Form class]]; 
    self = [super initWithNibName:@"Form" bundle:resourcesBundle]; 
    return self; 
} 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 
} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

/* 
#pragma mark - Navigation 

// In a storyboard-based application, you will often want to do a little preparation before navigation 
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    // Get the new view controller using [segue destinationViewController]. 
    // Pass the selected object to the new view controller. 
} 
*/ 

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