2012-07-05 5 views
0

방금 ​​4.2에서 4.3.3으로 Xcode를 업데이트했고 문제가 계속 발생했습니다 단일보기 응용 프로그램에 탐색 컨트롤러를 추가 할 수 있습니까? 컨트롤러에 하나를 삽입하려고 할 때 아무 반응이 없습니다. 두 개의 컨트롤러에 버튼으로 연결된 두 개의보기 컨트롤러와 첫 번째보기 컨트롤러에 대한 탐색 바를 갖고 싶습니다.삽입 내비게이션 컨트롤러

나는보기 컨트롤러를 연결하는 다른 방법으로는 생각할 수 없다. 어떤 아이디어가 도움이 되었으면 . 당신이 탐색 컨트롤러를 추가하지 않으려면

+0

.xib 파일을 사용했다고 생각합니다. .storyboard 파일을 사용하십시오. –

답변

2
  1. , 당신은 반환 할 첫 번째 1-1, 및 dismissViewControllerAnimated에서 이동 presentViewController를 사용하여 기존 뷰 컨트롤러 사이를 전환 할 수 있습니다.

  2. NIB를 사용한다고 가정하면 (그렇지 않으면 스토리 보드에 embed 명령을 사용하기 만합니다.) NIB와 함께있는 탐색 컨트롤러를 추가하려면 적절하게 응용 프로그램 대리인을 변경할 수 있습니다.

그래서, 당신은 아마 무언가 같이 말한다 앱 위임이 있습니다

// AppDelegate.h 

#import <UIKit/UIKit.h> 

@class YourViewController; 

@interface AppDelegate : UIResponder <UIApplicationDelegate> 

@property (strong, nonatomic) UIWindow *window; 

@property (strong, nonatomic) YourViewController *viewController; 

@end 

이 탐색 컨트롤러를 추가하는 변경 (당신이 여기에 메인 뷰 컨트롤러에 대한 이전의 참조를 제거 할 수 있습니다) :

// AppDelegate.h 

#import <UIKit/UIKit.h> 

//@class YourViewController; 

@interface AppDelegate : UIResponder <UIApplicationDelegate> 

@property (strong, nonatomic) UIWindow *window; 

//@property (strong, nonatomic) YourViewController *viewController; 
@property (strong, nonatomic) UINavigationController *navigationController; 

@end 

그리고, 앱 대리인의 구현 파일에, 당신은 아마라는 didFinishLaunchingWithOptions이 뭔가 같은 :

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 

    self.viewController = [[YourViewController alloc] initWithNibName:@"YourViewController" bundle:nil]; 
    self.window.rootViewController = self.viewController; 

    [self.window makeKeyAndVisible]; 
    return YES; 
} 

당신은 그 말을 변경할 수 있습니다

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 

    //self.viewController = [[YourViewController alloc] initWithNibName:@"YourViewController" bundle:nil]; 
    //self.window.rootViewController = self.viewController; 

    YourViewController *viewController = [[YourViewController alloc] initWithNibName:@"YourViewController" bundle:nil]; 
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:viewController]; 
    self.window.rootViewController = self.navigationController; 

    [self.window makeKeyAndVisible]; 
    return YES; 
} 

하나 펜촉이 pushViewController을 사용하고 popViewControllerAnimated로 돌아가있어 다른 컨트롤러를 볼에서 지금 탐색 할 수 있음을 수행 가졌어요. viewDidLoad에서 self.title = @"My Title"; 명령을 사용하여보기의 탐색 모음에 나타나는 내용을 제어 할 수도 있습니다.

enter image description here

: 당신은 당신의 화면 레이아웃과 같이보고 무슨 일이 일어나고 있는지의 좋은 감각을 가질 수 있도록 또한, 탐색 모음 메트릭 시뮬레이션 포함하도록 펜촉에서 "최고 바"속성을 변경할 수 있습니다

ARC가 아닌 프로젝트가있는 경우보기 컨트롤러의 alloc/init 행도 autorelease이어야합니다 (앱 대표를 볼 때 분명 함).