2011-12-02 3 views
0

UINavigationController를 루트 컨트롤러로 사용하여 매우 간단한 응용 프로그램을 만들었지 만 실행하면 탐색 막대의 절반 (왼쪽)이 표시됩니다. 왜 이런거야? 이상하게 보입니다 - 제가 잘못했으면 전혀 표시되지 않을 것이라고 생각할 것입니다. 대신 정확히 절반입니다!탐색 막대의 절반 만 UINavigationController에 대해 표시됩니다.

컨트롤러는 다음과 같다

@interface RootController : UINavigationController { 
    UIWebView* webView; 
    NSMutableString  *htmlString; 
} 

대응 @property 선언과 함께 @synthesize.

보기 컨트롤러 /보기에 .nibs를 사용하고 있지 않습니다. 응용 대리인은 다음과 같습니다

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    RootController* theRVC = [[RootController alloc] init]; 
    self.window.rootViewController = theRVC; 
    [theRVC release]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

그리고 컨트롤러는 다음과 같은 관련 코드를 가지고 : 당신은 UINavigationController에서 파생 안

- (void)loadView 
{ 
    webView = [[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 
    self.view = webView; 
    [webView release]; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
} 

답변

1

.

대신 UIViewController에서 RootController 클래스를 파생시킵니다. 그런 다음 응용 프로그램 대리인에서 RootController를 전달하는 UINavigationController를 초기화하고 Windows rootViewController로 설정합니다.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    RootController* theRVC = [[RootController alloc] init]; 
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:theRVC]; 
    self.window.rootViewController = navController; 
    [theRVC release]; 
    [navController release]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 
+0

감사합니다. 항상 UINavigationController에서 파생시키는 것이 올바르지 않습니까? – Gruntcakes

+0

UINavigationController에서 파생 될 필요는 거의 없습니다. 원하는 경우, 컨텐츠 컨트롤러를 정의하지 않고 탐색 컨트롤러 자체의 일부 기능을 사용자 정의하는 것이 좋습니다. –

관련 문제