2011-10-15 4 views
0

보기를 표시하는 데 문제가 있습니다. 버튼이 현재보기에서 누르면, 다음과 같은 조치가 exected된다xcode보기가 호출되고 초기화되지만 표시되지 않습니다.

- (IBAction) vistaUser: (id)sender{ 

    loginTabController *theInstance = [[loginTabController alloc] init]; 
    [theInstance logIn:user.text :password.text]; 

} 

다음, logIn 기능을 다음하는 것은 userViewControler보기를 표시 할 수있는 사람이라고 만이 보여되지 않습니다. 보기가 현재보기로 유지됩니다. 그러나 userViewController보기가 초기화되고이보기에서 getData 기능이 실행되었습니다! 왜 호출 된 뷰가 표시되지 않는지 이해할 수 없습니다! 도와 주셔서 감사합니다!

- (void)logIn: (NSString *)strUser: (NSString *)strPass 
{ 

    [UIView beginAnimations:@"View Flip" context:nil]; 
    [UIView setAnimationDuration:1.0]; 
    [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut]; 

    if (self.controladorUser == nil) 
    { 
     userViewController *aController = [[userViewController alloc] initWithNibName:@"userViewController" bundle:nil]; 
     self.controladorUser = aController; 
     [aController release]; 
    } 

    [UIView setAnimationTransition: UIViewAnimationOptionCurveEaseIn forView:self.view cache:YES]; 

    [self.controladorPass viewWillDisappear:YES]; 
    [self.controladorUser viewWillAppear:YES]; 

    [self.controladorPass.view removeFromSuperview]; 
    [self.view insertSubview:controladorUser.view atIndex:0]; 

    [self.controladorPass viewDidDisappear:YES]; 
    [self.controladorUser viewDidAppear:YES]; 

    [UIView commitAnimations]; 

    //getData call 

    userViewController *theInstance = [[userViewController alloc] init]; 
    [theInstance getData:strUser :strPass]; 

} 

답변

1

당신은 결코 귀하의 loginTabController보기를 보이지 않습니다. 따라서 TabViewController의 뷰에 UserViewController의 뷰를 추가하면 아무것도 수행하지 않습니다. 이 시도 :

- (IBAction) vistaUser: (id)sender{ 

    loginTabController *theInstance = [[loginTabController alloc] init]; 
    [self.view addSubview:theInstance.view]; 
    [theInstance logIn:user.text :password.text]; 

} 

이 작업을 진행하지만 해결 할 수있는 몇 가지 일반적인 코드 디자인 문제가있는 것을 :

  1. 를 사용하여 새로운 블록 애니메이션 기능을 대신 이상있는 UIView에가와 더 어려운 "beginAnimations" "commitAnimations"메소드.
  2. 즉시 다른 viewController를 호출하는 viewController를 호출하는 것은 의미가 없습니다. loginTabController를 건너 뛰고 곧바로 userViewController로 가십시오. 어떤 이유로 든 loginTabController가 별도의 클래스로 사용하고있는 코드를 유지하고 싶다면 viewController 하위 클래스를 사용하지 마십시오.
+0

첫점 해결 문제. 감사! – Jaume

관련 문제