objective-c - 为什么我的 UIActionSheet 被我的 TabBarController 隐藏了?

标签 objective-c ios xcode ipad

我在 iPad 5.1 (XCode 4.3) 项目中正确实现 UIActionSheet 时遇到问题。我可以用我需要的所有项目正确填充它。该列表比窗口长,但滚动条会自动出现,等等。但是,取消按钮(我认为它应该在最后)半隐藏在我的标签栏后面。如下图所示:

(抱歉,现在还不允许我发布图片)

这是我的 Storyboard设置: 入口点是左侧的 Tab Bar Controller,它转到另一个 Navigation Controller(中心),它的 View Controller 位于右侧作为 Root View 。 http://i854.photobucket.com/albums/ab103/srVincentVega/ScreenShot2012-06-28at52713PM.png

我尝试过以各种方式呈现 UIActionSheet,但这种奇怪的行为仍然存在,我不知道如何解决它

- (IBAction)cmdReason:(id)sender
{
    NSArray *reasons = [AppState getInspReasons];

    UIActionSheet *action = [[UIActionSheet alloc]
                             initWithTitle:@"Reason for Inspection"
                             delegate:self
                             cancelButtonTitle:@"Cancel"
                             destructiveButtonTitle:nil
                             otherButtonTitles:nil];

    for (NSString *rsn in reasons)
    {
        [action addButtonWithTitle:rsn];
    }

    [action showInView:self.view];
}

我已经尝试了各种方法来显示“ Action ”——showFromTabBar、showFromToolbar 等——我对这个开发环境还很陌生,所以我还没有跟上这些项目在这个层面上的交互方式。有没有人对我如何正确呈现这个有什么建议?

如果这个问题已经在别处被问过,我很抱歉。我花了一整天的时间尝试来自整个网络的一些代码,包括 SO。我不知道这是否与我的 Storyboard布局有关,还是什么。

还有一件事 - 当我旋转模拟器时,操作表会重新绘制,但最后的部分看起来很不稳定,好像它无法再弄清楚如何绘制它。

非常感谢!

编辑: 我已经建立了一个非常小的项目来演示这种确切的行为。我没有托管 zip 文件的好方法,所以我使用 google docs 并共享它。链接如下。如果你点击它,文件下应该有一个下载选项,它会给你原始的 zip 文件。

https://docs.google.com/open?id=0B7IYvy9_c_NLaEFneGc5bzc2S2c

最佳答案

似乎没有真正的解决方案。如果您添加该数量的按钮标题并从选项卡栏中显示,它看起来像是 UIActionSheet 的限制。

除此之外,从标签栏显示 UIActionSheet 的正确方法是使用

[action showFromTabBar:self.tabBarController.tabBar];

代替

// Taken from your example project
AppDelegate *d = [[UIApplication sharedApplication] delegate];
UIWindow *w = d.window;
UIViewController *vc = w.rootViewController;
UITabBarController *c = (UITabBarController *)vc;
UITabBar *t = c.tabBar;
[action showFromTabBar:t];

关于objective-c - 为什么我的 UIActionSheet 被我的 TabBarController 隐藏了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11253264/

相关文章:

ios - 在 apple iWatch 中,后台任务未被调用或按计划时间触发

ios - 替换模态视图

ios - UIViewController 中的 tableHeaderView

ios - 加载保存到文档目录的图像只能工作一次,然后再也不会加载

ios - Xcode 4.6 中未添加配置文件

xcode - 有没有办法在多个 Xcode 安装之间共享代码片段?

objective-c - iOS:使用@private 隐藏属性不被设置

objective-c - 如果我写一个 @synthesize 语句,我会得到与属性同名但没有下划线的 ivar 吗?

ios - 如何在 swift4.2 中将 Realm 文件与我的应用程序捆绑在一起?

swift - 如何在 Xcode 10.1 中渲染 DAE (COLLADA) 文件。目前正在崩溃