Создание «дыры» в UITabBarController или UINavigationController? - PullRequest
3 голосов
/ 01 декабря 2011

Как мне «пробить дыру» в приложении панели вкладок, при котором приложение на основе панели вкладок может отображать представление за контроллерами uinavigation, которые находятся на каждой вкладке?(этот удар может быть дополнительно отключен).

Мой код, делегат приложения, для создания вкладок:

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 - Нарисуйте прозрачный прямоугольник на UIView, чтобы показать представление под - но я не уверен, как это сделать в моем случае ... я бы создал подкласс моего контроллера навигации или контроллера панели вкладок (законно ли это делать), и если да, то как бы я сделал отверстие необязательным?

Ответы [ 3 ]

10 голосов
/ 03 декабря 2011

Почему бы просто не добавить UIView (который будет действовать как «дыра») поверх контроллера Tab-bar?

Вы можете просто добавить его в UIWindow приложения, например, в application:didFinishLaunchingWithOptions::

// ...
self.window.rootViewController = self.tabBarController;

MyView *holeView = [[MyView alloc] initWithFrame:CGRectMake(hole coordinates)];
[self.window addSubview:holeView];
[holeView release];

[self.window makeKeyAndVisible];
3 голосов
/ 03 декабря 2011

Это может быть легко описанным ниже способом:

  • Создать @Property из UIView в AppDelegate.
  • Создать объект UIView и назначить@Property в didFinishLaunching метод
  • Просто установите рамку обзора.
  • Добавьте его в качестве вспомогательного представления в mainView (То же, что мы делаем в AdMob, где мы показываем добавить в нижней частиПосмотреть на все другие подпредставления.)
  • Вы можете получить доступ к этому представлению из sharedApplication из AppDelegate, и вы можете показать и скрыть это представление.

и все.Что такого особенного, что вам нужно ??Если это не работает, то, пожалуйста, дайте некоторые основные сведения о ваших конкретных требованиях.

Помимо ответа выше, вы также можете выбрать ToastMessage для iPhone.Вы можете использовать это как, чтобы показать и скрыть ваш взгляд с указанным временем.

1 голос
/ 09 декабря 2011

или создайте представление в каждой вкладке индивидуально и синхронизируйте значения.Подробно вы можете создать один вид, но связать его с обеими вкладками.Счет удержания должен регулироваться автоматически, если в памяти находится хотя бы одна вкладка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...