이것은 쉬운 대답 일 수 있습니다.UITableView가있는 UITabBar - 테이블을 올바르게 볼 수 있지만 행을 선택할 수 없습니다.
먼저 SQLite에서로드 된 테이블이있는 탐색 응용 프로그램을 만들었습니다. rootViewController (UITableViewController)는 mainWindow.xib에서로드됩니다. 검색 및 범위 기능을 추가하고 행 선택에서 세부적인보기 (UIViewController)를 잘 밀어 넣고 테이블 및 필터링 된 결과, 검색 및 앞뒤로 다른 검색 범위를 탐색 할 수 있습니다. 모두 좋음, 오류 없음, 충돌 또는 경고 없음.
이제는 rootViewController 상단에 tabBar 인터페이스를 추가하려고했습니다 ... 2 일 후에 표시 할 TabBarController가 있습니다. (직접 RootviewController에서 구현하려고했으나 구현해야한다는 것을 알았습니다. 메인 윈도우에서) 탭 바에서 다른보기 (xib)를 선택할 수 있습니다. 하나의 탭에 IB가 할당 된 뷰가없고, RootViewController가 탭에 지정되어 있지 않아도이 탭 뷰의 첫 번째 스크린으로 이전에했던 것처럼 RootViewController로드를 볼 수 있습니다.
문제는이 방법으로로드 할 때 테이블의 행을 클릭 할 수 없다는 것입니다. 또는 RootViewController를 호출하여 탭을 만들면 맨 위에 검색 막대가 생기지 만 테이블은 비어 있습니다. 이것이 어떻게 든 appDelegate가 rootViewController를로드하고 있기 때문에 발생하는 것으로, 탭에 "로드"또는 "다시로드"하는 방법을 알지 못합니다. 탭바를 추가하기 전에 원래 mainWindow와 동일한 별도의 "search.xib"를 작성한 다음 TabItem에로드하려고 했으므로 appDelegate가 먼저 호출되었지만 시가 : 충돌이 발생하지 않았습니다. 나는 search.xib가 info.plist "Main nib file base name"으로 넣었을 때 잘 동작하는지 확인했다. 그리고 이것은 벌써로드되었고 TabBarController를 추가하기 전에 BS로 작동한다.
나는 시작할 것이다. 코드를 붙여 넣을 수 있지만 무엇이 누락되었거나 잘못되었는지 알아야 할 필요는 없습니다. 나는 [self.tableView reloadData]
을 -(void)viewDidLoad
에서 RootViewController.m이라고 부르지 만,이 문제를 전혀 돕지는 못한다.
아무도 도와 줄 수 있습니까? Mac OS X은 버전 10.5.8이고 Xcode 3.1.4를 사용하고 있습니다.
// Create and configure the main view controller.
RootViewController *rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
rootViewController.violinMakers = violinMakers;
[violinMakers release];
// Add create and configure the navigation controller.
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
self.navController = navigationController;
[navigationController release];
// Configure and show the window, Override point for customization after app launch
[window addSubview:[navController view]];
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];
도움을 주셔서 감사합니다! 위의 마지막 단원에서는 RootViewController를 스택 맨 위에 놓아야하지만 어디에 있는지 잘 모르겠습니다.
// <AppName>AppDelegate.h
@interface <AppName>AppDelegate: NSObject <UIApplicationDelegate,
UITabBarControllerDelegate, UINavigationControllerDelegate>{
UIWindow *window;
UINavigationController *navController;
UITabBarController *tabBarController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navController;
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
@end
벤 - 나는 rootViewController가 tabBarController 뒤에 있다는 것에 대해 알고 있습니다. 필자는 tabBar를 기본보기로 설정하는 방법과 navController를 탭으로 설정하는 방법을 알지 못합니다. 당신이 언급 한 튜토리얼을보고 그것이 설명하는 데 도움이되는지 확인하겠습니다. 감사합니다 벤!
09-10-14 업데이트
일부 진행 상황! 이제 NavBar가 맨 위에있는 탭에서 뷰를 볼 수 있습니다. 올바른 .xib 파일에서 제목으로오고 있으며 검색을 클릭 할 수 있으며 범위 단추는 올바른 이름입니다. ....하지만 전과 마찬가지로이 단계에 이르거나 닫을 경우 표 정보가이 탭에로드되지 않습니다 (모든 셀이 비어 있음). 테이블을이 셀에 제대로로드하려면 어떻게합니까? 이 창에보기가 전혀 할당되어 있지 않은 것처럼 실행시로드됩니다. 표 n Nav를 볼 수는 있지만 클릭 할 수 없습니다. (너무 가까이서, 너무 멀리 있습니다.) 이제 탭을 올바르게 설정했지만 테이블이 제대로로드되지 않습니다 ...RRRR
나는 방법에 viewController.m의 전형적인[self.tableView reloadData];
있습니다
- (void)viewWillAppear:(BOOL)animated
및
- (void)viewDidAppear:(BOOL)animated
과
- (void)viewDidLoad
에 0
그리고 다른 방법을 사용해 보았지만 탭을 선택하면 테이블 정보가 다시로드되지 않습니다.
이 표를 TabBar보기에서 올바르게 다시로드하는 방법에 대한 아이디어가 있으십니까?
나는 IB와의 설명에서 좀 더 나아간 tabBars에 대한 좋은 지침서를 찾았습니다. Twillo Embed Nav in a Tab Tutorial
뷰 컨트롤러를 설정할 때 코드를 공유 할 수 있습니까? 앱 구성 방법을 이해하면 도움이됩니다. – Alex