Исходя из того, что вы написали, я предполагаю, что у вас есть @property в заголовочном файле.Что-то вроде:
@property (nonatomic, strong) IBOutlet UINavigationController *navController;
Затем подключите этот IBOutlet к вашему навигационному контроллеру в вашем xib-файле.В этом же файле xib есть представление, которое связано с владельцем файла.Установите размеры этого представления в конструкторе интерфейсов, чтобы в вашем случае занимать только половину экрана.Затем вы добавите navController в качестве подпредставления этого представления.Если у вас также есть viewController, уже добавленный в xib-файл в navController, то в viewDidLoad выполните:
-(void)viewDidLoad {
[self addChildViewController:self.navController];
[self.view addSubview:self.navController.view];
[self.navController didMoveToParentViewController:self];
}
В противном случае, если вы программно устанавливаете rootviewcontroller, выполните:
-(void)viewDidLoad {
self.navController = [[UINavigationController alloc] initWithRootViewController:yourViewController];
[self addChildViewController:self.navController];
[self.view addSubview:self.navController.view];
[self.navController didMoveToParentViewController:self];
}
У вас естьдобавить self.navController как childViewController, чтобы он принимал размеры представления, в которое он добавляется.Добавление его в качестве подпредставления недостаточно для изменения размера представления.Надеюсь, это поможет!