Я довольно новичок, и я делаю простое многоцелевое приложение, в котором кнопки открывают новые представления.
РЕДАКТИРОВАТЬ: у меня возникла та же проблема, когда я сделал новое, более простое приложение, и я думаю,это связано с удалением подпредставлений.Я сделал еще одну простую версию приложения с двумя UIViewController
s: MainViewController
и SecondViewController
.MainView
имеет панель инструментов и красный фон, SecondView
имеет светло-синий фон.Кнопка на панели инструментов удаляет все подпредставления со следующим кодом (и я думаю, что это проблема), а затем добавляет SecondView
в качестве подпредставления.
for(UIView *view in self.view.subviews){
[view removeFromSuperview];
}
При этом возникает аналогичная проблема смешивания(Увидеть ниже).Без этого кода подпредставление отображается правильно.Что происходит, и есть ли способ удалить все подпредставления, не вызывая их?Моя цель - иметь несколько кнопок, каждая из которых открывает новые представления (и закрывает все остальные представления).
Исходное сообщение:
От делегата приложения,У меня есть корень UIViewController
appViewController
, прикрепленный к пиру appView
.Этот вид - только желтый фон и не предназначен для отображения.В appViewController
я добавляю подпапку RootViewController
при загрузке, которая управляет UIView
с красным фоном и несколькими пронумерованными кнопками.Оба вида имеют -(BOOL) shouldAutorotateToInterfaceOrientation
, написанные для принятия только альбомных ориентаций.
Однако, когда я запускаю приложение, вместо того, чтобы видеть красный фон RootView с кнопками, верхняя половина экрана красная, а нижняя половинажелтый с кнопками, как будто два UIViews
как-то смешиваются.Далее кнопки не работают и даже не показывают синюю кнопку нажатыми графическими эффектами.Что происходит?
РЕДАКТИРОВАТЬ: По запросу: исходный код для RootViewController
Следующее находится в appViewController
:
- (void)viewDidLoad {
rootViewController = [[RootViewController alloc] initWithNibName:@"RootView" bundle:nil];
[self.view addSubview:rootViewController.view];
self.rootViewController.appViewController = self;
}