- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚开始使用 RubyMotion 学习 iOS 开发,我正在这样做 tutorial 。这似乎很容易理解,但现在我在运行 rake
命令时遇到了这个错误:
ColorController.rb:7:in `initWithColor:': undefined method `initWithNibName' for #<ColorController:0x9b4f470> (NoMethodError)
from SearchController.rb:46:in `open_color:'
from Color.rb:35:in `block in find:'
from query.rb:358:in `call_delegator_with_response'
from query.rb:128:in `connectionDidFinishLoading:'
我到了教程页面上发现 WHEW WELL THAT IS A TON OF CODE NOW ISN'T IT.
的部分,但我被困在那里。目前我的代码如下所示:
# app_delegate.rb
class AppDelegate
def application(application, didFinishLaunchingWithOptions:launchOptions)
@window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
@search_controller = SearchController.alloc.initWithNibName(nil, bundle: nil)
@navigation_controller = UINavigationController.alloc.initWithRootViewController(@search_controller)
@window.rootViewController = @navigation_controller
@window.makeKeyAndVisible
true
end
end
# ColorController.rb
class ColorController < UIViewController
attr_accessor :color
def initWithColor(color)
initWithNibName(nil, bunlde: nil)
self.color = color
self
end
def viewDidLoad
super
self.title = self.color.hex
@info_container = UIView.alloc.initWithFrame [[0, 0], [self.view.frame.size.width, 110]]
@info_container.backgroundColor = UIColor.lightGrayColor
self.view.addSubview @info_container
@color_view = UIView.alloc.initWithFrame [[10, 10], [90, 90]]
@color_view.backgroundColor = String.new(self.color.hex).to_color
self.view.addSubview @color_view
@color_label = UILabel.alloc.initWithFrame [[110, 30], [0, 0]]
@color_label.text = self.color.hex
@color_label.sizeToFit
self.view.addSubview @color_label
@text_field = UITextField.alloc.initWithFrame [[110, 60], [100, 26]]
@text_field.placeholder = "tag"
@text_field.textAlignment = UITextAlignmentLeft
@text_field.autocapitalizationType = UITextAutocapitalizationTypeNone
@text_field.borderStyle = UITextBorderStyleRoundedRect
self.view.addSubview @text_field
@add_button = UIButton.buttonWithType(UIButtonTypeRoundedRect)
@add_button.setTitle("Add", forState: UIControlStateNormal)
@add_button.setTitle("Adding", forState: UIControlStateDisabled)
@add_button.setTitleColor(UIColor.lightGrayColor, forState: UIControlStateDisabled)
@add_button.sizeToFit
@add_button.frame = [[@text_field.frame.origin.x + @text_field.frame.size.width + 10, @text_field.frame.origin.y], @add_button.frame.size]
self.view.addSubview(@add_button)
table_frame = [[0, @info_container.frame.size.height], [self.view.bounds.size.width, self.view.bounds.size.height - @info_container.frame.size.height - self.navigationController.navigationBar.frame.size.height]]
@table_view = UITableView.alloc.initWithFrame(table_frame, style: UITableViewStylePlain)
self.view.addSubview(@table_view)
end
end
# SearchController.rb
class SearchController < UIViewController
def viewDidLoad
super
self.title = "Search"
self.view.backgroundColor = UIColor.whiteColor
@text_field = UITextField.alloc.initWithFrame [[10, 10], [self.view.frame.size.width - 20, 30]]
@text_field.placeholder = "#abcabc"
@text_field.textAlignment = UITextAlignmentLeft
@text_field.autocapitalizationType = UITextAutocapitalizationTypeNone
@text_field.borderStyle = UITextBorderStyleRoundedRect
@text_field.center = CGPointMake(self.view.frame.size.width / 2, self.view.frame.size.height / 2 - 100)
self.view.addSubview @text_field
@search_button = UIButton.buttonWithType(UIButtonTypeRoundedRect)
@search_button.setTitle("Search", forState: UIControlStateNormal)
@search_button.setTitle("Loading", forState: UIControlStateDisabled)
@search_button.sizeToFit
@search_button.center = CGPointMake(self.view.frame.size.width / 2, @text_field.center.y + 40)
self.view.addSubview @search_button
@search_button.when(UIControlEventTouchUpInside) do
@search_button.enabled = false
@text_field.enabled = false
hex = @text_field.text
hex = hex[1..-1] if hex[0] == "#"
Color.find(hex) do |color|
if color.nil?
@search_button.setTitle("None :(", forState: UIControlStateNormal)
else
@search_button.setTitle("Search", forState: UIControlStateNormal)
self.open_color(color)
end
@search_button.enabled = true
@text_field.enabled = true
end
end
end
def open_color(color)
self.navigationController.pushViewController(ColorController.alloc.initWithColor(color), animated: true)
end
end
我还有另外两个模型,我确信它们不相关,除非您要运行代码。
谁能告诉我我该怎么办?我意识到我正在尝试调用 initWithNibName
方法,该方法未在我的类中定义,但这就是教程所做的,所以我认为它是正确的。我需要在 ColorController 类上定义它吗?或者我可以用其他方式调用它吗?
最佳答案
您刚刚错误地拼写了“bundle”。
更改:
initWithNibName(nil, bunlde: nil)
到:
initWithNibName(nil, bundle: nil)
关于ios - 未定义的方法 `initWithNibName',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19210314/
我使用 initWithNibName 加载详细 View 。我只是在想这些东西有必要发布吗? init 基本上是添加了 1 的保留计数? 最佳答案 @梅尔: 是的,你需要释放它们。 Apple 文档
我的应用程序最近开始崩溃,我需要一些帮助来找出原因。 在应用程序委托(delegate)中,我创建了一个导航 Controller UINavigationController *localNavig
我刚刚开始使用 RubyMotion 学习 iOS 开发,我正在这样做 tutorial 。这似乎很容易理解,但现在我在运行 rake 命令时遇到了这个错误: ColorController.rb:7
我遇到内存泄漏问题。在 Instruments 中,我在这条线上遇到内存泄漏: VDLPlaybackViewController *videoController = [[VDLPlaybackVi
在尝试添加新 View 时遇到了这个非常令人沮丧的问题,我有 2 种不同类型的 View :LargeCoverViewController 和 CoverViewController。 我像这样创建
在我的基于导航的应用程序中,initWithNibName 方法没有被调用/触发 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBu
我肯定我错过了一些简单的东西。我试图在 iOS 中加载一个 subview (模态视图)作为单独的 Controller 。我创建了一个带有指向我的 Controller View 的窗口的 NIB
我想要一个自定义的 initWithNibName,基本上传入另一个 NSString 作为类型来确定此 UIViewController 中的一些逻辑基于类型。所以我设置如下: - (id)init
我需要将一些自定义逻辑放入我的 iPhone 应用程序中,以便根据您运行的 iOS 版本选择不同的 XIB 文件(即 iPhone 或 iPad 将显示不同的 XIB 文件)。 我从第一天开始就构建了
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: initWithNibName VS viewDidLoad 我是 iOS 开发新手。我只是想知道这两个功能之间的主
在 iPhone 应用程序中我需要将一些值传递给一个新的 View Controller 对象,同时它是从另一个 View Controller 类中的方法创建的,这样我就可以在新 View Cont
调用 initWithNib 后,我有额外的保留计数。什么可能导致这种情况? ( Nib 上没有引用点) StepViewController *stepViewController = [[Step
我正在按照 Facebook 的教程发布到用户的墙上:http://developers.facebook.com/docs/howtos/publish-to-feed-ios-sdk/虽然它是在考
我经常使用 initWithNibName 函数来初始化我的 View Controller 中的内容。我只是注意到生成的 initWithNibName 函数对 self 进行了 nil 检查。 -
我过去常常以编程方式创建我的 View ,并且已经开始使用 XIB 文件进行切换。我找到这段代码: -(id)init { self = [super initWithNibName:@"He
iOS 上的 initWithNibName 很聪明:它会自动为 iPad 而不是 iPhone 加载不同的 NIB(尽管很多人不知道这一点 - 它没有记录在 UIViewController.ini
我有一个 iOS 应用程序在模拟器上运行良好,但在所有设备上崩溃并出现此错误: : *** Assertion failure in -[UINib initWithNibName:directory
我想用 Xcode 4.2 的 Storyboard更改以下代码。 UIViewController * example = [[ExampleViewController alloc] in
谁能解释一下何时使用 initWithNibName 以及何时使用 initWithCoder? 最佳答案 initWithNibName: 通常与 View Controller 对象一起使用。这个
我是一名优秀的程序员,十分优秀!