ОБНОВЛЕНИЕ 2
Я запускал и тестировал свое приложение в iOS Simulator с помощью 4-дюймового устройства. Если я запускаю с использованием 3,5-дюймового устройства, ярлык не прыгает. В моем .xib, в разделе "Имитированные показатели", я установил его как 4-дюймовый полноэкранный режим Retina. Любая идея, почему я вижу эту проблему только на 4-дюймовом устройстве?
ОБНОВЛЕНИЕ 1
В IB, если я выберу "Панель навигации" в Simulated Metrics, моя метка все еще скачет. Единственный способ, которым я могу заставить свою метку правильно отображать на первом экране, - это не устанавливать контроллер навигации в качестве моего контроллера корневого окна.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
В моем окне rootViewController устанавливается UINavigationController, у которого rootViewController имеет встроенный UIPageViewController.
Когда мое приложение загружается, исходное представление представлено содержимым, которое немного сдвинуто вниз, примерно того же размера, что и панель навигации. Когда я просматриваю pageViewController, содержимое вскакивает туда, где оно было помещено в nib, и все остальные диспетчеры просмотра, загруженные с помощью pageViewController, являются точными.
В моем приложении appDelegate:
self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:[ContainerViewController new]];
В ContainerViewController:
- (void)viewDidLoad {
[super viewDidLoad];
self.pvc = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll
navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal
options:nil];
self.pvc.dataSource = self;
self.pvc.delegate = self;
DetailViewController *detail = [DetailViewController new];
[self.pvc setViewControllers:@[detail]
direction:UIPageViewControllerNavigationDirectionForward
animated:false
completion:nil];
[self addChildViewController:self.pvc];
[self.view addSubview:self.pvc.view];
[self.pvc didMoveToParentViewController:self];
}