Не уверенный, если можно сделать это с механиком, но если Вы создаете расширение тогда, можно использовать сервис наблюдателя и http-on-examine-response наблюдателя.
У меня была аналогичная проблема . Не знаю, почему. Но обходной путь состоял в том, чтобы вызывать это для каждого представления после первого:
[PlanningController.view setFrame: CGRectMake (0, 0, 480, 300)];
и до -addView. Мне любопытно, поможет ли это вам. Если я не единственный, у кого есть эта проблема и этот обходной путь, то, возможно, есть причина.
Решил ту же проблему и, очевидно, добавил subviews в UIWindow
работает не так, как я ожидал. Мне удалось решить проблему после добавления «пустышки» UIViewController
, которая является ЕДИНСТВЕННЫМ подвидом в UIWindow. После добавления этого, он отлично работает для добавления нескольких подвидов к фиктивному контроллеру, все с правильной ориентацией.
Таким образом, единственный код в классе «фиктивного» контроллера - это функция « shouldAutorotateToInterfaceOrientation
» . Это также должно совпадать с той же функцией во всех других подпредставлениях.
Надеюсь, это поможет.
Это далеко от идеала. Но вы можете взломать преобразование второго представления, чтобы оно было повернуто правильно. Это работает для меня, потому что мое приложение всегда работает только в ландшафтном режиме. Это может быть не идеально, если вы хотите изменить ориентацию.
[window addSubview:firstController.view];
[window addSubview:secondController.view];
CGAffineTransform rotate = CGAffineTransformMakeRotation(M_PI/2.0);
[backgroundViewController.view setTransform:rotate];
CGRect contentRect = CGRectMake(0, 0, 1024, 768);
backgroundViewController.view.bounds = contentRect;
[backgroundViewController.view setCenter:CGPointMake(768/2, 1024/2)];
Кажется, у меня есть решение, которое, похоже, работает. Добавьте вид, а затем сразу же удалите его, повторите для каждого вида, а затем добавьте все три. Вот так:
[window addSubview:welcomeController.view];
[welcomeController.view removeFromSuperview];
[window addSubview:goalController.view];
[goalController.view removeFromSuperview];
[window addSubview:planningController.view];
[planningController.view removeFromSuperview];
[window addSubview:welcomeController.view];
[window addSubview:goalController.view];
[window addSubview:planningController.view];
Кажется, это работает, по крайней мере, в симуляторе.