【问题标题】:UITableView styling ignored in Modal Presentation Style模态演示样式中忽略的 UITableView 样式
【发布时间】:2013-02-20 17:08:42
【问题描述】:

UINavigationController 内的 iPad 上以模态方式呈现时,UIViewController 中的 UITableView 的样式存在问题。很简单,我希望表格单元格边框不出现,因此在 IB 中,我将分隔符样式设置为“无”,将分隔符颜色设置为“清除颜色”。在 NIB 中,我的分组表看起来是我想要的样子:

在 NIB 中,tableView 连接到文件的所有者,因为它是源和委托。它也被设置为 IBOutlet。文件所有者的类名已正确设置为我要加载此 NIB 的 VC。在启动时,我创建了这个 VC 的一个实例,然后我创建了一个 UINavigationController 的实例。我用这个VC(有UITableView)初始化UINavigationController,然后以模态方式呈现UINavigationController。在 iPad 上,我使用模态表单呈现样式呈现它。

在我的 AppDelegate 的 application:didFinishLaunchingWithOptions: 方法中,我实例化并保留对 VC 及其父级 `UINavigationController: 的引用:

self.loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
self.loginViewNavigationController = [[UINavigationController alloc] initWithRootViewController:self.loginViewController];

然后......在执行了一些逻辑之后(仍在 AppDelegate 中),我以模态方式呈现 UINavigationController

if (self.loginViewNavigationController != nil) {

    if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)
        self.loginViewNavigationController.modalPresentationStyle = UIModalPresentationFormSheet;

        [self.window.rootViewController presentViewController:self.loginViewNavigationController animated:YES completion:nil];
}

iPhone 上的一切都很好,因为我的单元格边框不可见:

但是,在 iPad 上,单元格边框清晰可见,我的导航标题样式全部消失(这是另一天的问题):

我真的很想知道为什么UITableView 在 iPad 上会忽略这样的分隔符样式。我尝试将 modalPresentationStyle 设置为 PageSheet 和 FullScreen 并遇到同样的问题。我还尝试在 VC 的viewDidLoad(包含表格视图)中设置这些属性,但无济于事。我也尝试过创建一个 iPad 特定的 NIB“LoginViewController~ipad”并以这种方式连接所有东西,但这似乎也没有什么不同。

这可能是我保留登录 VC 的方式,它包含 UINavigationController,但我不能确定,因为这在 iPhone 上运行良好。

我猜这可能与 iPad 上的模态演示有关,对于我所有的搜索和尝试不同的组合,我无法弄清楚发生了什么。有什么想法吗?

[编辑]

我正在使用 iOS 6.1、5.1 和 5.0 的模拟器工作。我在所有版本中都看到了同样的问题。我现在坚持使用 iOS 6.1,并将向后移动以兼容。我还没有移动到设备上。

谢谢!

【问题讨论】:

  • 你的 iPhone 和 iPad 的 iOS 版本是多少?
  • 糟糕。可能应该包括该信息。我正在使用 iOS 6.1(最终还必须支持 5.1 和 5.0)。该问题已被编辑。

标签: iphone objective-c ipad uitableview uimodalpresentationstyle


【解决方案1】:

事实证明,我的 UINavigationController 子类中有一些错误的样式代码(不好,我知道吗?),导航栏和表格的样式不正确。我已经解决了这个问题,现在 UINavigationController 看起来应该是这样的。

【讨论】:

    猜你喜欢
    • 2014-06-26
    • 1970-01-01
    • 2021-09-08
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多