是否有更通用的方法来设置navigationBar属性?我想将半透明设置为false,将图像设置为标题。对我来说奇怪的是我可以在app_delegate.rb
中设置tintColor和barTintColor,而不是其他属性。在我的所有屏幕上运行此代码有点奇怪。
我正在使用最新的Rubymotion,我正在使用促销宝石来构建我的屏幕。
class AppDelegate < ProMotion::Delegate
include PM::Styling
def on_load(app, options)
set_appearance_defaults
end
def set_appearance_defaults
UINavigationBar.appearance.tintColor = UIColor.whiteColor
UINavigationBar.appearance.barTintColor = hex_color("3B4044")
end
end
class LoginScreen < PM::Screen
def on_init
self.navigationItem.titleView = UIImageView.alloc.initWithImage(UIImage.imageNamed("logos/navigation_bar_logo.png"))
self.navigationController.navigationBar.translucent = false
end
end
答案 0 :(得分:2)
上面添加了一些评论,但这里有一个你可以尝试的实际答案,非常灵活。
# app/mk_screen.rb
class MKScreen < PM::Screen
def useLogoNavbar
self.navigationItem.titleView = UIImageView.alloc.initWithImage(UIImage.imageNamed("logos/navigation_bar_logo.png"))
self.navigationController.navigationBar.translucent = false
end
end
# app/login_screen.rb
class LoginScreen < MKScreen
useLogoNavbar
end
现在你仍然需要调用一个方法,但它至少可以让你选择是否使用它。这也意味着您可以使用MKScreen为视图控制器放置一些常用代码。