2

NavigationController 스타일 앱을 TabBarcontroller 스타일 앱으로 변환하는 방법을 궁금합니다. 나는 더 이상있는 navigationController를 포함하지 내 MainWindow를 변경 (하지만 대신 tabbarcontroller) 나는 애플 리케이션 여전히 뭔가 생각 시작할 때 내 대표는 또한 적절하게,하지만 난있는 navigationController 원하는 : 응용 프로그램을 종료navbar를 tabbar 앱으로 변환

인해 캐치되지 않는 예외에 'NSUnknownKeyException ', reason :'[setValue : forUndefinedKey :] :이 클래스는 키 navigationController에 대해 키 값 코딩을 준수하지 않습니다. '

스택 추적 :

#0 0x020fa004 in ___TERMINATING_DUE_TO_UNCAUGHT_EXCEPTION___ 
#1 0x96fc0509 in objc_exception_throw 
#2 0x020ee1c1 in -[NSException raise] 
#3 0x000d8a78 in _NSSetUsingKeyValueSetter 
#4 0x000d84c5 in -[NSObject(NSKeyValueCoding) setValue:forKey:] 
#5 0x004fb4c8 in -[UIRuntimeOutletConnection connect] 
#6 0x020af92f in -[NSArray makeObjectsPerformSelector:] 
#7 0x004f9f7f in -[UINib instantiateWithOptions:owner:loadingResourcesFromBundle:] 
#8 0x004fbfcb in -[NSBundle(NSBundleAdditions) loadNibNamed:owner:options:] 
#9 0x0033b0a6 in -[UIApplication _loadMainNibFile] 
#10 0x0034482a in -[UIApplication _runWithURL:sourceBundleID:] 
#11 0x00341b88 in -[UIApplication handleEvent:withNewEvent:] 
#12 0x0033d6d3 in -[UIApplication sendEvent:] 
#13 0x003440b5 in _UIApplicationHandleEvent 
#14 0x0265aed1 in PurpleEventCallback 
#15 0x02092b80 in CFRunLoopRunSpecific 
#16 0x02091c48 in CFRunLoopRunInMode 
#17 0x0033be69 in -[UIApplication _run] 
#18 0x00345003 in UIApplicationMain 
#19 0x00002ec8 in main at main.m:14 

다음 내 대표의 인터페이스입니다 같이

@interface CPPlayerAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> { 
    UIWindow *window; 
UITabBarController *tabBarController; 
} 

#pragma mark - 
#pragma mark Window/view 
@property (retain) IBOutlet UIWindow *window; 
@property (retain) IBOutlet UITabBarController *tabBarController; 

내 대표의 구현 :

@implementation CPPlayerAppDelegate 

@synthesize window; 
@synthesize tabBarController; 

@synthesize stateController, distribution, languageManager, updateParser, soundPlayer, ticketProcessor; 

#pragma mark - 
#pragma mark Application lifecycle 

- (void)applicationDidFinishLaunching:(UIApplication *)application { 
[window addSubview: tabBarController.view]; 
    [window makeKeyAndVisible]; 
} 

가 어디가 지정할 수 있습니다 앱은 navigationbarcontro 대신 tabbarcontrol 된 앱입니다. 앱을 풀었습니까?

미리 감사드립니다.

답변

3

주 XIB를 변경해야합니다. 인터페이스 빌더에서 열어 현재 가지고있는 네비게이션 컨트롤러를 지우고 탭 바 컨트롤러로 바꿉니다. 그런 다음 응용 프로그램 대리자의 tabBarController 콘센트를 XIB의 탭 표시 줄 컨트롤러에 연결합니다. 이 모든 작업을 수행하는 방법에 대한 자세한 내용은 Interface Builder User Guide 및보다 구체적으로 Connections and Bindings 섹션을 참조하십시오.

0

내 프로젝트를 iPad 앱으로 변환 한 후 -Info.plist 파일에 잘못된 xib 파일에 대한 참조가있는 것을 발견하고 내비게이션 컨트롤러를 제거하고이를 제외하고 새로운 최상위보기 구조를 대체했습니다. 나는 iPad가 아닌 xib를로드하고 편집했지만, 다른 xib로 생성 된 Resources-iPad 폴더를 간과했다.

한 번 그 xib를 돌 보았는데 모든 것이 좋았습니다.

관련 문제