Teniendo problema con el pushViewController!! Ayuda

tabBarController = [[UITabBarController alloc] init];   //Create a tab bar  
view1 = [[View1 alloc] init];   //Create the first view
UINavigationController *navigationController1 = [[UINavigationController alloc] initWithRootViewController:view1];
navigationController1.navigationBar.tintColor =[UIColor blackColor];
view2 = [[View2 alloc] init];   //create the second view
UINavigationController *navigationController2 = [[UINavigationController alloc] initWithRootViewController:view2];
navigationController2.navigationBar.tintColor =[UIColor blackColor];
tabBarController.viewControllers = [NSArray arrayWithObjects:navigationController1, navigationController2,nil];
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];

El código de arriba son de mi clase appDelegate (applicationDidFinishLaunching). Vista1 y View2 son UIViewController. Esta es la forma en que originalmente el diseño de mis aplicaciones, que las aplicaciones que tiene dos pestañas, (vista1 y view2). El código a continuación, poner en práctica lo que sucede en la Vista1, cuando el usuario pase el dedo a la izquierda o a la derecha.

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"I am in touches began  methods");

UITouch *touch = [touches anyObject];
gestureStartPoint = [touch locationInView:self.view];

}


- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {

UITouch *touch = [touches anyObject];
CGPoint currentPosition = [touch locationInView:self.view];

CGFloat deltaX = fabsf(gestureStartPoint.x - currentPosition.x);
CGFloat deltaY = fabsf(gestureStartPoint.y - currentPosition.y);

if (deltaX >= kMinimumGestureLength && deltaY <= kMaximumVariance) {
    //Set Animation Properties
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration: 1];

    if(gestureStartPoint.x > currentPosition.x){    //I am trying to move right

        ViewControllerTemplate *newView = [[ViewControllerTemplate alloc] initWithNibName:@"ViewControllerTemplate" bundle:nil];
        //Transition spin right
        [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];
        //Push OnTo NavigationController
        [self.navigationController pushViewController:newView animated:YES];        
    }
    else {  //I am trying to move left
        if([viewDelegate getCurrentViewID] > 0){    //At view 0, should not pop anymore view
            //Transition Spin left
            [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO];
            [self.navigationController popViewControllerAnimated:YES];
        }
    }
    [UIView commitAnimations];
}
}

Bastante mucho, sólo decir que cuando el usuario pase el dedo a la derecha, que se cree una nueva vista (ViewControllerTemplate) y pushViewController, y cuando el usuario pase el dedo a la izquierda, popViewController. Sin embargo, desde que me cambie de opinión y no desea implementar la barra de pestañas. Así que puedo cambiar mi código en applicationDidFinishLaunching en el appDelegate a estas abajo y la pushViewController en touchesMoved en Vista1.m detener el trabajo. Estoy seguro de que llegar, pero cuando se pushViewController de la nuevavista, nada sucede. Me siento como cuando me sacó la UINavigationController, mi punto de vista no empujar a la pila correctamente ya. Alguna idea de por qué y cómo solucionarlo

view1 = [[View1 alloc] init];
[window addSubview:View1.view];
InformationsquelleAutor Thang Pham | 2010-02-17

1 Kommentar

  1. 1

    Si alguien alguna vez se ejecute en el mismo problema, aquí está la solución
    Reemplazar lo que tengo para applicationDidFinishLaunching() para este

    view1 = [[View1 alloc] initWithNibName:@"View1" bundle:nil];    //Create the first view
    UINavigationController *navigationController1 = [[UINavigationController alloc] initWithRootViewController:view1];
    navigationController1.navigationBar.tintColor =[UIColor blackColor];
    view1 = navigationController1;  
    [window addSubview:view1.view];
    [window makeKeyAndVisible];
    • ¿Sabes por casualidad ¿cómo se puede enviar datos a otro punto de vista sobre UITouch como lo hizo antes. Como lo hacemos en didselectforrowatindexpath.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea