【问题标题】:Customize displayModeButtonItem Appearance自定义 displayModeButtonItem 外观
【发布时间】:2016-02-03 16:08:44
【问题描述】:

我正在尝试在我的UISplitViewController 中为我的displayModeButtonItem 使用图像。我得到的项目看起来像我想要的,但在 iPhone 上点击时它没有做任何事情。使用 iPad 时效果很好。

UIBarButtonItem *menuItem = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"list_button"]
                                                            style:UIBarButtonItemStylePlain
                                                           target:self.splitViewController.displayModeButtonItem.target
                                                           action:self.splitViewController.displayModeButtonItem.action];
self.navigationItem.leftBarButtonItem = menuItem;

我已添加检查以确保 displayModeButtonItem 不是 nil 并且确实不是 nil

if (self.splitViewController.displayModeButtonItem == nil) {
    NSLog(@"displayModeButtonItem is nil");
} else {
    NSLog(@"displayModeButtonItem is NOT nil");
}

【问题讨论】:

  • 您是否尝试为此分配另一个selectortarget?并记录它是否有效?
  • 我做到了,它有效。
  • self.splitViewController.displayModeButtonItem 在 iPhone 上创建按钮时可能是 nil
  • @dan,看看我的更新。
  • 当你覆盖按钮 self.navigationItem.leftBarButtonItem = menuItem; 时,动作/目标可能不会被保留并且为零,老实说我不知道​​ :)

标签: ios objective-c uisplitviewcontroller displaymode


【解决方案1】:

尝试以下操作:

UIBarButtonItem *addButton = [[UIBarButtonItem alloc]initWithImage:faceImage style:UIBarStyleDefault target:self action:@selector(addProduct:)];

【讨论】:

  • 这行得通,但为什么我的代码可以在 iPad 而不是 iPhone 上运行?
  • 您是否在两个设备上都使用一个情节提要?您是否清理过项目并删除了一段时间的派生数据?不工作是什么意思?不是去iPhone上的方法吗?
  • 我实际上并没有使用情节提要。通过不工作,我的意思是显示主视图控制器的条形按钮项目在我实现了我的帖子中的代码后在 iPad 上工作,但在 iPhone 上不工作。
猜你喜欢
  • 2010-10-19
  • 2012-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-04
  • 2017-07-05
相关资源
最近更新 更多