2012-06-08 3 views
1

내 응용 프로그램에서 나는 XIB를 사용하여 탭 표시 줄에 대한보기 컨트롤러를 만들었습니다. XIB를 사용하여 탭 막대에 뷰 컨트롤러를 추가했다는 것을 의미합니다. 탭 표시 줄 컨트롤러의보기 컨트롤러 재설정

enter image description here

그래서 내 응용 프로그램이처럼, 그림을 참조하십시오. 로그인 페이지가 표시되는 로그 아웃 기능이 있습니다. 로그인 페이지에서 내가 로그 아웃 할 때 단순히 다음은 로그인 화면이 표시됩니다

[self.tabBarController.view removeFromSuperView]; 

으로이 탭 표시 줄 및 표시 로그인 화면을 제거

[self.view addSubview tabBarController.view]; 

로 탭 표시 줄을 displayyed있다. 다시 로그인하면 탭 막대 안의보기 컨트롤러가 재설정되지 않습니다. 내 말은 테이블 뷰에서 이름과 같은 데이터를 보여 주면 다시 로그인했을 때 (내가 다른 사용자로 로그인 한 후 이전 사용자에 대한 세부 정보를 얻을 때와 같이)있을 것입니다. 시도했으나

self.tabBarController.viewControllers = nil; 

모든보기 컨트롤러를 재설정했지만 더 이상 작동하지 않습니다. 나는 매번 모든 뷰 컨트롤러에 로그인 할 때 ViewDidLoad:이라고 불러야한다고 생각하며 현재는 viewWillAppear:을 호출합니다. 이 문제를 어떻게 해결할 수 있는지 알려주십시오.

+0

그냥 다시 만들어보세요. 'self.tabBarController = [[UITabBarController alloc] init];'그리고 당신의 데이터 아이템으로 초기화하기 – luther

+0

인터페이스 빌더없이 앱을 작성 중입니다. – luther

+0

읽기 전용 속성을 가진 속성에 할당하는 것은 허용되지 않습니다.'self.tabBarController = [[ UITabBarController alloc] init];'@luther – rakeshNS

답변

0

Interface Builder를 사용하기 때문에 문제가 발생합니다. 좋아, 설명하려고. MyViewController.m의 ypu 같은 클래스는 다음과 같이 속성을 설정 필요 :

당신이 당신의 UITabBarController가에 대한 mytabbar 속성 이름을 설정할 필요가 IB (인터페이스 빌더)에서
@interface MyViewController : UIViewController 
{ 
    IBOutlet UITabBarController *mytabbar; 
} 

. 그 후에이 변수에 대한 포인터가 있기 때문에이 변수를 수 정할 수 있습니다.

1

일단 로그 아웃하고 다시 로그인하면 새로운 개체를 사용하지 않으므로 마지막 단계에서 나를 보여줄 것입니다. 로그인 한 후에 컨트롤러 객체를 초기화 해보십시오.

문제가 더 있으면 알려주세요.

건배 타룬

관련 문제