Hi Denis,
hier bist Du richtig :-)
Mit Views und Xibs kannst Du viele verschiedene Konstellationen implementieren. Als Leitfaden kann ich Dir nur mitgeben das ganze aus der Controller-Sicht zu sehen. Damit meine ich ViewController, also die Klasse die den View controlled.
Hier implementierst Du Alle deine IBActions und IBOutlets und die ganze Logik die den View bzw die Views controlled.
Zumeist platziere ich weitere Views die vom Viewcontroller gemanagt werden im selben xib.
Ansonsten mache ich ein neues xib auf, sofern der view eine logik implementieren muss (wie ibactions, iboutlets). keine angst vor xibs. letztendlich hilft dir das ganze deine sachen getrennt zu halten.
in deinem fall ein menuView -- gemanagt von einem menuViewController_iPhone.h und .m.
dann kommts drauf an, was die subviews können müssen. (sofern der startview nur ein statisches bild ist, lade ihn aus dem selben xib zum anzeigen)
sobald ein view "mehr können" muss würde ich einen viewcontroller und ein eigenes xib dafür anlegen.
du kannst mehere views übereinander legen. um die sichtbarkeit zu steueren würde ich jedoch den view zumindest auf HIDDEN setzen.
also angenonmmen du möchtest deine subviews aus einem viewcontroller heraus kontrollieren, deklariere und verknüpfe für jeden view ein IBOUTLET in deinem xib.
wenn der view geladen ist kannst du .b.
[UIView transitionWithView:view1
duration:1.0
options:UIViewAnimationOptionTransitionNone
animations:^{ [view1 setHidden:TRUE]; [view2 setHidden:FALSE]; }
completion:NULL];
einen anderen view einblenden.
oder wenn du mit viewcontrollern arbeits und diesen einmlendest könntest du es evtl so machen:
[viewController1 viewWillDisappear:YES];
[viewController1.view removeFromSuperview];
ViewController2 *viewController = [[ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil];
self.viewController2 = viewController;
[viewController release];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleSwitchViewNotificationFromViewController2:) name:@"SwitchView" object:viewController2];
UIView *highView = viewController2.view;
[viewController2 viewWillAppear:YES];
[self.view addSubview:highView];
CATransition *transition = [CATransition animation];
transition.duration = 0.75;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[self.view.layer addAnimation:transition forKey:nil];
lass dich von der caTransition nicht verwirren, das ist nur eine andere art der transition mit core animation. man kann das aber auch mit einer normalen animation die ein uiview bietet ebenso animieren.
Hoffe das hilft Dir etwas weiter, ansonsten einfach weiter fragen! :-)
Viele Grüße
Gu8n
|