Я просто пытаюсь разобраться с простым переключением вида для iPhone и создал простое приложение, которое поможет мне понять его.
Я включил код моего корневого контроллера, используемый для переключения представлений. Мое приложение имеет одну панель инструментов с тремя кнопками, каждая из которых связана с одним представлением. Вот мой код для этого, но я думаю, что наиболее эффективный способ достичь этого? Есть ли способ узнать / удалить текущий отображаемый вид вместо необходимости делать операторы if, чтобы увидеть, есть ли у суперкласса?
Я знаю, что мог бы использовать панель вкладок для создания подобного эффекта, но я просто использую этот метод, чтобы помочь мне практиковать некоторые из техник.
-(IBAction)switchToDataInput:(id)sender{
if (self.dataInputVC.view.superview == nil) {
if (dataInputVC == nil) {
dataInputVC = [[DataInputViewController alloc] initWithNibName:@"DataInput" bundle:nil];
}
if (self.UIElementsVC.view.superview != nil) {
[UIElementsVC.view removeFromSuperview];
} else if (self.totalsVC.view.superview != nil) {
[totalsVC.view removeFromSuperview];
}
[self.view insertSubview:dataInputVC.view atIndex:0];
}
}
-(IBAction)switchToUIElements:(id)sender{
if (self.UIElementsVC.view.superview == nil) {
if (UIElementsVC == nil) {
UIElementsVC = [[UIElementsViewController alloc] initWithNibName:@"UIElements" bundle:nil];
}
if (self.dataInputVC.view.superview != nil) {
[dataInputVC.view removeFromSuperview];
} else if (self.totalsVC.view.superview != nil) {
[totalsVC.view removeFromSuperview];
}
[self.view insertSubview:UIElementsVC.view atIndex:0];
}
}
-(IBAction)switchToTotals:(id)sender{
if (self.totalsVC.view.superview == nil) {
if (totalsVC == nil) {
totalsVC = [[TotalsViewController alloc] initWithNibName:@"Totals" bundle:nil];
}
if (self.dataInputVC.view.superview != nil) {
[dataInputVC.view removeFromSuperview];
} else if (self.UIElementsVC.view.superview != nil) {
[UIElementsVC.view removeFromSuperview];
}
[self.view insertSubview:totalsVC.view atIndex:0];
}
}