我的应用程序几乎是公司产品的大型演示文稿 我有一些额外的功能,我需要在整个应用程序中访问它。
此工具栏的预期功能是它将作为屏幕底部的一个小而精细的标签。当您点击选项卡时,菜单将向上扩展(即为它的frame.y属性设置动画),允许您点击菜单中包含的任何按钮。
我遇到的困难是应用程序当前跨越多个视图控制器,并且因为我需要在整个过程中访问它,为了不复制代码,使得这个ViewController也是合适的,我只是加载进入我的其他视图控制器,但所有帐户都不建议Apple。
如何在不重复代码的情况下构建此菜单功能?我尝试过一些东西,但无法在我的视图中显示菜单。
下面,我将展示我目前的情况。
将位于任何视图控制器上的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
ToolboxMenu *toolboxMenu = [[ToolboxMenu alloc] init];
[self.view addSubview:toolboxMenu.view];
}
构建工具栏的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"Creating View");
self.view = [[UIView alloc] initWithFrame:CGRectMake(0,0,88,209)];
self.view.backgroundColor = [UIColor clearColor];
UIImageView *toolboxImage = [[UIImageView alloc] initWithImage:[[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"popup_toolbox" ofType:@"jpg"]]];
toolboxImage.frame = self.view.frame;
[self.view addSubview:toolboxImage];
}
在上面的代码中,初始化菜单时会触发NSLog,但是我看不到菜单。
答案 0 :(得分:2)
我建议创建一个单独的UIWindow
并将其浮动到主UIWindow
上,而不是尝试将其注入到每个视图中。这就是键盘的实现方式。这样做可以避免对任何现有视图进行任何更改。您需要手动处理设备旋转,但这不应该太困难。
答案 1 :(得分:0)
IIRC Apple的TabViewController的设计不同,因为它与你上面的描述有所不同。 TabViewController是主要的或主要的ViewController,兄弟姐妹是显示ViewControlers。基本上你有一个TabViewController,它将在视图之间进行选项。
我建议您重新设计视图层次结构,或者使用管理和显示下方标签菜单的类来扩展UIViewController。然后,您可以轻松地初始化一个类,在每个视图中处理它。