我需要实现类似路径菜单的功能,无论用户在哪个屏幕上,都可以在应用程序中全局使用。
请注意我不是在问如何实现动画/造型的东西,我只是对布局菜单交叉视图控制器的正确方法感到好奇。
我目前采取的方法是:
这种方法的缺点是:
简而言之,我设法达到UI / UX期望,但从技术上讲,我觉得我做错了。有没有人有类似的项目经验,请分享你的想法。
答案 0 :(得分:4)
有两种解决方案,
您可以将全局菜单添加到AppDelegate,
然后,您可以将全局菜单添加到导航控制器视图中,例如
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
self.viewController = [[HomeViewController alloc] initWithNibName:nil bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
self.navigationController.delegate = self.viewController;
self.window.rootViewController = self.navigationController;
// Your Global Menu
UIButton *myButton ...
[self.navigationController.view addSubview:myButton];
[self.window makeKeyAndVisible];
return YES;
}
,例如,
#import "GlobalMenuView.h"
@interface BaseViewController : UIViewController
{
UIButton *btnMenu;
GlobalMenuView *globalMenu;
}
@end
然后想要全局菜单的视图控制器,
#import "BaseViewController.h"
@interface YourOtherViewController: BaseViewController
{
}
@end
答案 1 :(得分:1)
在确定已添加主UIViewController之后,您可以直接将其添加到UIWindow上吗?
答案 2 :(得分:0)
我现在可能没有任何帮助,但是对于你想要达到的目标,也有更好的解决方案。您可以做的是将UIView对象子类化,然后在您的应用程序委托类中,在
中- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法,您可以插入以下代码
[self.window insertSubview:(UIView) aboveSubview:(UIView)];
那应该给你想要完成的东西:)
希望有助于任何