我正在创建一个Rubymotion应用程序,我需要在Navbar中创建一个自定义按钮。 我在控制器中运行代码。
我正在使用此代码:
button = UIBarButtonItem.alloc.init
button.title = 'Add'
button.style = UIBarButtonItemStylePlain
button.target = self
button.action = 'performAdd'
button.setBackgroundImage(checkInImage, forState:UIControlStateNormal, forBarMetrics:UIBarMetricsDefault)
button.setBackgroundImage(checkInPressed, forState:UIControlStateHighlighted, forBarMetrics:UIBarMetricsDefault)
self.navigationItem.rightBarButtonItem = button
但是我在运行rake时遇到了这个错误:
Terminating app due to uncaught exception 'NoMethodError', reason: 'first_controller.rb:21:in `button': undefined method `setBackgroundImage' for #<UIBarButtonItem:0x6b3c1d0> (NoMethodError)
解
button = UIBarButtonItem.alloc.init
button.title = 'Add'
button.target = self
button.action = 'performAdd'
button.setBackgroundImage(checkInImage, forState:UIControlStateNormal, barMetrics:UIBarMetricsDefault)
button.setBackgroundImage(checkInPressed, forState:UIControlStateHighlighted, barMetrics:UIBarMetricsDefault)
self.navigationItem.rightBarButtonItem = button
答案 0 :(得分:2)
根据我的阅读,它是barMetrics
,而不是forBarMetrics
。所以:
setBackgroundImage(checkInImage,
forState:UIControlStateNormal, barMetrics:UIBarMetricsDefault)
答案 1 :(得分:1)
我在RubyMotion中真的很新,但仍然想帮助你。如果我在任何地方不正确,请原谅我。
修改强>
查看崩溃日志Terminating app due to uncaught exception 'NoMethodError', reason: 'first_controller.rb:21:in
按钮':未定义的方法setBackgroundImage' for #<UIBarButtonItem:0x6b3c1d0> (NoMethodError)
。
我想,你没有调用正确的方法来设置View controller
中的backgroundImage,这就是为什么会出现这种异常,我想是的。
我认为确切原因可能是setBackgroundImage
方法。我猜这不是正确的方法。应该是backgroundImage
。然后你应该尝试ViewController
下面的代码行
button.backgroundImage(checkInPressed, forState:UIControlStateHighlighted, forBarMetrics:UIBarMetricsDefault).
这是您的代码只是改变了这一行。
button = UIBarButtonItem.alloc.init
button.title = 'Add'
button.style = UIBarButtonItemStylePlain
button.target = self
button.action = 'performAdd'
button.backgroundImage(checkInImage, forState:UIControlStateNormal, forBarMetrics:UIBarMetricsDefault)
button.backgroundImage(checkInPressed, forState:UIControlStateHighlighted, forBarMetrics:UIBarMetricsDefault)
self.navigationItem.rightBarButtonItem = button
Here is The Link For The same You should take a View of this Link.
我希望你能得到一些想法..