koncepcyjne lub techniczny problem z programowaniem kakao

głosy
2

Znajdę się w potrzebie dostępu do viewcontroller z jej zdaniem.

Tutaj jest metoda

-(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];

}

Zasadniczo, próbuję napisać ogólny widok metodę przełącznik, który jest wywoływany przez kontrolera głównego, aby zamienić się subviewcontorllers widoki z widokiem rootcontrollers.

Mijam w subviewcontroller i jestem w stanie usunąć bieżący widok podrzędny. Ale w tym celu właściwej animacji przełączania widoku muszę dostęp do bieżącego kontrolera widoku widoki. Jest to złe podejście, a można to zrobić?

Utwórz 02/03/2009 o 00:57
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
1

Po dodaniu do rootcontroller elementu, które posiadają na regulatora prądu widok Sub (currentController) i odnosi się to, gdy zamiana Sterownik dokonuje

-(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;

}
Odpowiedział 02/03/2009 o 02:21
źródło użytkownik

głosy
0

changeView()Metoda należy w viewcontroller. Byłoby Ci rozwiązać problem konieczności pogląd wiedząc o to kontroler (co nie powinno), a to sprawia, że więcej sensu.

Także chyba robisz coś w fantazyjny changeView(), które nie mogą być wykonane przy użyciu metod w UIViewControllerobiekcie to należy po prostu użyć go zamiast, jeśli jest neccesary zaimplementować własną metodę przełączania widoku następnie można rozszerzyć UIViewController zamiast implemtning część widok controlelr w widoku.

moje 2 centów :)

Odpowiedział 02/03/2009 o 01:16
źródło użytkownik

głosy
-2

Wierzę, że Twoje podejście jest błędne. Należy spojrzeć na UINavigationController wierzę.

Odpowiedział 02/03/2009 o 01:09
źródło użytkownik

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