2

背景和目的:

在我现有的应用程序中,我正在尝试向用户提供语音消息功能。这个想法是有选择地为用户提供从应用程序中的任何地方对语音消息的通用访问(受 facebook 消息的启发)。到目前为止,我在显示我的迷你消息仪表板并点击它会在 iPhone 和 iPad 上打开自定义消息(弹出框)视图方面取得了部分成功。

我在应用程序键窗口上添加了我的迷你仪表板子视图,因此在应用程序内导航时它在所有视图(顶部)中可见。

[application.keyWindow addSubview:self.messageDashBoardVC.view];

这使它自动(开箱即用)出现在像这样呈现的应用程序中的模式对话框(大部分)之上。

[自我presentViewController:modelVC动画:是完成:无]

具体问题陈述:

但是.. 在iPad上,当视图控制器以模态方式呈现时

modalPresentationStyle = UIModalPresentationFormSheet

UIModalPresentationPageSheet 迷你仪表板隐藏在模式对话框(工作表)后面。但是,我希望用户在处理这些工作表时访问语音功能(迷你仪表板和弹出视图)。

我现有的应用程序使用了很多这样的模态对话框(表格)。

一般问题陈述: 是否有任何可重用的组件/源代码可以做同样的事情,因为我认为方向处理也将是一个棘手的/相当适合我的方法的工作?您对我的方法还有其他问题吗?

4

2 回答 2

2

我在上面的特定问题陈述中发现了一些成功:-

模态视图呈现(添加)到同一个窗口,所以我只是像这样把我的迷你仪表板视图放在前面。

UIWindow *appDelegateWindow = [[[UIApplication sharedApplication] delegate] window];

UIView *miniView = (UIView *)[appDelegateWindow viewWithTag:12221]; // 12221 is tag of mini dashboard view.

[appDelegateWindow bringSubviewToFront:miniView];

但是,我仍然期待您对我的方法的专家意见,并考虑到我可能通过这种方法遇到的方向和其他潜在挑战,对替代方法持开放态度。

接下来 - 我正在努力将我的自定义弹出视图放在模态表前面。截至目前,点击迷你视图会打开消息弹出框,但位于模式表后面。

于 2013-08-17T03:54:27.107 回答
0

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

MALoginViewController *login=[[MALoginViewController alloc]initWithNibName:@"MALoginViewController" bundle:nil];
 MANowPlayingViewController *nav=[[MANavigationController alloc]initWithRootViewController:home];
[self.window setRootViewController:nav];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];

这里 MANowPlayingViewController 是 UINavigationController 的类..所以你必须为 UINavigationController 创建单独的类...然后将其设置为 Window RootviewController..

无论您在该 UINavigationController 类中提供什么,都将显示您的应用程序中的所有页面..您可以在此类中处理所有常见代码..例如,如果您在该 NavigationBar 上添加 UIButton ,它将显示在所有类中...

谢谢..

于 2013-08-17T08:33:11.733 回答