如何在标签栏应用程序中“打洞”,基于标签栏的应用程序可以显示每个标签中的uinavigationcontroller背后的视图? (可以选择关闭此打孔)。
我的代码,即应用代理,用于创建标签:
OneRootViewController *oneRootViewController = [[OneRootViewController alloc] initWithNibName:@"OneRootViewController" bundle:nil];
UINavigationController *oneNav = [[UINavigationController alloc] initWithRootViewController:oneRootViewController];
oneNav.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"One" image:[UIImage imageNamed:@"one.png"] tag:0];
TwoRootViewController *twoRootViewController = [[TwoRootViewController alloc] initWithNibName:@"TwoRootViewController" bundle:nil];
UINavigationController *twoNav = [[UINavigationController alloc] initWithRootViewController:twoRootViewController];
twoNav.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Two" image:[UIImage imageNamed:@"two.png"] tag:1];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:oneNav, twoNav, nil];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
以下是我希望它如何工作:
-----------------------------
| |
| --------------- |
| | | |
| | hole which | |
| | shows the | |
| | same view | |
| | in each tab | |
| --------------- |
| |
| |
-----------------------------
| | |
| tab 1 | tab 2 |
| | |
-----------------------------
这里有一个关于透明矩形的线程 - iPhone - Draw transparent rectangle on UIView to reveal view beneath - 但我不知道如何在我的情况下这样做..我会将我的导航控制器或标签栏控制器子类化(即使这样做也是合法的),如果是的话,我该如何选择这个洞?
答案 0 :(得分:10)
为什么不在Tab-bar控制器上添加一个UIView(它将作为一个“洞”)?
你可以在application:didFinishLaunchingWithOptions:
中将它添加到应用程序的UIWindow中:
// ...
self.window.rootViewController = self.tabBarController;
MyView *holeView = [[MyView alloc] initWithFrame:CGRectMake(hole coordinates)];
[self.window addSubview:holeView];
[holeView release];
[self.window makeKeyAndVisible];
答案 1 :(得分:3)
这可以通过以下方式轻松实现:
@Property
UIView
。UIView
对象,并在@Property
方法didFinishLaunching
sharedApplication
AppDelegate
访问该视图,您可以显示和隐藏该视图。就是这样。你需要什么特别的?如果这不起作用,请提供一些特定要求的亮点。
除上述答案外,您还可以为iPhone购买ToastMessage。您可以使用该方式在给定的特定时间内显示和隐藏您的视图。
答案 2 :(得分:1)
或单独在每个选项卡中创建一个视图并同步这些值。详细地说,您将创建一个视图,但将其链接到两个选项卡。只要内存中至少有一个标签,就应该自动调节Retain-Count。