我在 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/