2009-08-15 4 views
1

у меня возникли проблемы со следующим кодом:Проблемы добавление RootViewController к UINavigationController

MyViewController *aController = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil]; 
self.myController = aController; 
myController.title = @"List"; 

[aController release]; 


UINavigationController *bController = [[UINavigationController alloc] initWithRootViewController:myController]; 
self.rootNavController = bController; 

[bController release]; 

[self.view addSubview:rootNavController.view]; 

Когда я запускаю свою программу, я получаю эту проблему, когда мой взгляд для myController повторяется вдоль оси у всех пути до нижней части экрана. Если я добавлю myController.view в корневой режим, он будет работать нормально. У меня только проблема, когда я добавляю myController в качестве rootViewController моего контроллера навигации.

Заранее благодарим за любую помощь!

ответ

1

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

линия мне было нужно что-то вроде этого:

rootNavController.view.frame = CGRectMake(0, 0, 320, 431); 
1

шаблон Навигационный проект контроллера по умолчанию определяет -applicationDidFinishLaunching таким образом:

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    // Override point for customization after app launch  

    [window addSubview:[navigationController view]]; 
    [window makeKeyAndVisible]; 
} 

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

Где находится код, с которого вы показываете?

+0

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

0

Попробуйте это:

MyViewController *aController = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil]; 
self.myController = aController; 
[aController release]; 


UINavigationController *bController = [[UINavigationController alloc] initWithRootViewController:myController]; 
self.rootNavController = bController; 
[bController release]; 

[window addSubview:rootNavController.view];//<--What are you adding the navigationController to??? Another ViewController? TabController? or Window? 

Тогда в - (Недействительными) viewDidLoad метод MyViewController вы можете поместить

self.navigationItem.title = @"List"; 
+0

Я добавляю его в контроллер просмотра. –

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