【问题标题】:iPhone/iPad - issues with NavigationBar button?iPhone/iPad - 导航栏按钮有问题?
【发布时间】:2011-01-13 03:46:28
【问题描述】:

我的应用程序在 NavigationBar 中添加了这样的按钮..

UIBarButtonItem *more=[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"search-25by25.png"] style:UIBarButtonItemStylePlain target:self action:@selector(SelectMission:)];

self.navigationItem.rightBarButtonItem = more;

当我点击按钮应用程序关闭时...

如果我用普通按钮做同样的事情,它工作正常,谁能帮助我为什么它会这样?

【问题讨论】:

  • “get's shutdown”是指它崩溃了吗?如果是这样,请您发布崩溃日志。
  • 检查 SelectMission 方法或将代码和崩溃日志放在这里。
  • 崩溃日志信息 - [RootViewController SelectMission]:无法识别的选择器发送到实例 0x6a23250 2011-01-12 21:06:45.428 TestApplication[1989:207] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[RootViewController SelectMission]:无法识别的选择器发送到实例 0x6a23250

标签: iphone objective-c xcode ipad uinavigationbar


【解决方案1】:

试试这个

UIImage *i=[UIImage imageNamed:@"search-25by25.png"];

  UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
  myButton.bounds = CGRectMake( 0, 0, i.size.width, i.size.height );    
  [myButton setImage:i forState:UIControlStateNormal];
  [myButton addTarget:self action:@selector(SelectMission:) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *more=[[UIBarButtonItem alloc] initWithCustomView:myButton]; self.navigationItem.rightBarButtonItem =更多;

希望对你有帮助:)

【讨论】:

  • 请在此处发布崩溃日志:)
  • 崩溃日志信息 - [RootViewController SelectMission]:无法识别的选择器发送到实例 0x6a23250 2011-01-12 21:06:45.428 TestApplication[1989:207] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[RootViewController SelectMission]:无法识别的选择器发送到实例 0x6a23250
  • 我猜你错过了方法名称 SelectMission 或者你没有参数。如果您没有参数,那么您应该删除操作上的最后一个冒号:@selector(SelectMission:)。只需使用操作:@selector(SelectMission)
【解决方案2】:

您查看过SelectMission: 的代码吗?您发布的代码仅用于显示按钮,根据您的描述,该按钮似乎可以正常工作。

如果有任何东西被转储到控制台(Command-Shift-R)?

【讨论】:

  • 崩溃日志信息 - [RootViewController SelectMission]:无法识别的选择器发送到实例 0x6a23250 2011-01-12 21:06:45.428 TestApplication[1989:207] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[RootViewController SelectMission]:无法识别的选择器发送到实例 0x6a23250
  • 崩溃日志中的 SelectMission 调用没有冒号,但在您的原始示例中。它接受参数吗?
【解决方案3】:

从您评论中的崩溃日志来看,我会说这与 UIBarButtonItem 类特别无关,而与您的操作处理程序有关。崩溃日志讲述了整个故事:您的类没有实现名为 SelectMission 的方法:该方法接受一个参数。关于@selector 关键字的一些注意事项,您需要仔细检查:

1) 大写。确保您实现的方法是 SelectMission:。不是 selectMission:、selectmission:、Selectmission: 等。

2) 论据。冒号表示方法 SelectMission: 采用一个参数。如果您已经实现它并忘记了参数,它将崩溃并出现您发布的异常。

这应该有助于缩小问题的范围。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多