2013-06-07 1 views
1

Я пытаюсь использовать контроллер навигации в своем iOS-проекте. Вот настройки моего класса AppDelegate:UINavigationController & Auto-Layout: вид RootViewController не отображается

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ 

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

    // Generate RootViewController (some auto-layout stuff is going on here) 
    MyLayoutDescriptionGeneratorClass *generator = [MyLayoutDescriptionGeneratorClass new]; 
    MyViewControllerClass *vc = [generator generateViewController]; 

    self.navController = [[UINavigationController alloc] initWithRootViewController:vc]; 
    [self.window setRootViewController:self.navController]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

viewDidLoad моего зрения контроллера выглядит следующим образом:

-(void)viewDidLoad{ 

    [super viewDidLoad]; 
    // Generate all subviews and their constraints   
    self.view = [MyObjectManagerClass viewForParentViewDescription:_parentViewDescription]; 
    self.title = @"Hello"; 
} 

Когда я построить & Run на панели навигации отображается и его название устанавливается на Hello - К сожалению, представление диспетчера представлений не отображается.

Если я вынимаю навигационный контроллер, как этот

[self.window setRootViewController:self.navController]; 

все прекрасно работает. Кто-нибудь может мне помочь?

+0

ли вы имеете в виду, если вы используете '[self.window setRootViewController: Vc];', он отлично работает? –

+0

без контроллера навигации. но представление показано правильно. – Chrizzor

+0

Как вы думаете, что он должен что-то сделать с автоматической компоновкой? – Chrizzor

ответ

1

я должен был изменить мой viewDidLoad:

-(void)viewDidLoad{ 
    [super viewDidLoad]; 
    // Generate all subviews and their constraints   
    UIView *view = [RuiObjectManager viewForParentViewDescription:_parentViewDescription]; 
    self.title = @"Hello"; 

    // Add generated view to self.view and create constraints 
    [self.view addSubview:view]; 
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[view]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(@"view", view)]]; 
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[view]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(@"view", view)]]; 
} 
+1

Just FYI: вся цель 'NSDictionaryOfVariableBindings()' заключается в том, что вам не нужно повторять имена переменных для ключей, поэтому 'NSDictionaryOfVariableBindings (view)' будет создавать словарь '@ {@" view ": view } ' –