elvi vagy technikai probléma Cocoa programozás

szavazat
2

Találom magam igénylő hozzáférést egy viewcontroller annak kilátás.

Itt látható a módszer

-(void)changePageView:(UIViewController*)newviewcont withtransitiontype:(int)t andtransitionspeed:(int)s
{
    //Remove whatever view is currently loaded at index 0, this index is only to be used by page views
    UIView *oldview = [self.view.subviews objectAtIndex:0];

    [UIView beginAnimations:@View Flip context:nil];
    [UIView setAnimationDuration:s];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];
    [newviewcont viewWillAppear:YES];
    //[oldview viewWillDisappear:YES];
    [oldview removeFromSuperview];
    [self.view insertSubview:newviewcont.view atIndex:0];
    //[oldview viewDidDisappear:YES];
    [newviewcont viewDidAppear:YES];

}

Alapvetően én próbálok levelet általános nézet kapcsoló módszert hívják a gyökér vezérlő cseréld le subviewcontorllers nyílik a rootcontrollers kilátás.

Elmegyek egy subviewcontroller és képes vagyok, hogy távolítsa el a jelenlegi subview. De ahhoz, hogy ezt a megfelelő nézet váltás animáció i hozzáférést kell biztosítani a jelenlegi nézetek nézetvezérlőben. Ez rossz megközelítés, és ez lehet tenni?

A kérdést 02/03/2009 00:57
a forrás felhasználó
Más nyelveken...                            


3 válasz

szavazat
1

Azt hozzá egy tagot a rootcontroller, hogy kapaszkodni az aktuális al nézetvezérlőben (currentController), és utal rá, amikor egy vezérlő-swap történik

-(void)changePageView:(UIViewController*)newviewcont withtransitiontype:(int)t andtransitionspeed:(int)s
{


    [UIView beginAnimations:@"View Flip" context:nil];
    [UIView setAnimationDuration:s];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];
    [newviewcont viewWillAppear:YES];
    [self.currentController viewWillDisappear:YES];
    [self.currentController.view removeFromSuperview];
    [self.view insertSubview:newviewcont.view atIndex:0];
    [self.currentController viewDidDisappear:YES];
    [newviewcont viewDidAppear:YES];
    [UIView commitAnimations];


    self.currentController = newviewcont;

}
Válaszolt 02/03/2009 02:21
a forrás felhasználó

szavazat
0

A changeView()módszer tartozik a viewcontroller. Ez megoldaná akkor problémát, hogy a néző tudni ez vezérlő (ami nem), és több értelme.

Továbbá, ha nem teszünk valamit képzelet changeView(), hogy nem lehet megtenni módszerekkel egy UIViewControllertárgyat, akkor meg kell csak használni, ahelyett, ha neccesary hogy végre a saját nézet váltás módszer akkor meghosszabbítja UIViewController helyett implemtning részét Tekintse controlelr a nézetben.

a 2 cent :)

Válaszolt 02/03/2009 01:16
a forrás felhasználó

szavazat
-2

Úgy vélem, a megközelítés téves. Meg kell nézni UINavigationController azt hiszem.

Válaszolt 02/03/2009 01:09
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more