Имеете UITabBar при отображении представления не на UITabBar? - PullRequest
0 голосов
/ 14 февраля 2011

У меня возникли некоторые проблемы с UITabBar, и я не могу найти что-либо в Интернете по этому вопросу. В значительной степени я хочу отобразить представление (скажем, TestView) и TabBar, который содержит другие представления: зеленый вид и красный вид. Итак, изначально я хочу, чтобы TestView отображался с вкладкой внизу с 2 вкладками, одна для зеленого представления и одна для красного просмотра, при касании одной из этих вкладок будет отображаться соответствующий вид, , но вкладки для TestView

Но вот код MainAppDelegate и картинка того, что я получаю

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

//Create the TabBar VC and ButtonSelect VC
testView = [[TestViewController alloc] init];
tabBarController = [[UITabBarController alloc] init];

//Create the viewcontroller's For the TabBarController
UIViewController *gvc = [[GreenViewController alloc] init];
UIViewController *rvc = [[RedViewController alloc] init];

//Make a array to containing the two viewcontrollers (for TabBar)
NSArray *viewControllers = [NSArray arrayWithObjects:gvc, rvc, nil];

//Attach the VC's to the TabBar
[tabBarController setViewControllers:viewControllers];

//Set to window
[window addSubview:[tabBarController view]];
[window addSubview:[testView view]];


[window makeKeyAndVisible];

[rvc release];
[gvc release];

return YES;

}

И Это - это то, что я получаю ..

Пожалуйста, помогите

1 Ответ

0 голосов
/ 14 февраля 2011

Отрегулируйте кадр вашего testView. Например,

testView = [[TestViewController alloc] initWithFrame: CGRectMake ( 0,0, 20,0, 320,0, 421,0)];

Я использовал здесь «магические числа», но вам лучше узнать высоту строки состояния и панели вкладок.


к комментарию

Таким образом, вы хотите отклонить тестовое представление, когда пользователь выбирает одну из вкладок. Вы можете поймать момент, когда вкладка выбрана, установив делегат в UITabBarController и внедрив метод tabBarController:didSelectViewController: `. В основном, вы отклоните тестовое представление в этом методе.

Один из способов сделать это (и без значительного изменения кода) - установить делегат приложения в качестве делегата UITabBarController, (tabBarController.delegate = self;). Затем внедрите tabBarController:didSelectViewController:, где вы удалите тестовое представление из окна приложения и выполните tabBarController.delegate = nil;.

...