我正在开发一个包含火车站列表的应用程序,当您从列表中选择一个站点时,应该有一个显示更多信息的视图。
对于我使用的列表,我使用PM::TableScreen
在这里,我有一个方法,当用户选择一个站点时,这个方法会被调用:
def select_station(station)
open StationScreen.alloc.initWithStation(station)
end
以及相应的StationScreen
class StationScreen < UIViewController
def initWithStation(station)
init.tap do
@station = station
end
end
def loadView
self.title = @station[:name]
@layout = StationLayout.new
self.view = @layout.view
end
end
这产生了以下情况:
当您单击“后退”按钮时,效果是平滑的。
现在,我想转到推广::屏幕
StationScreen变成:
class StationScreen < PM::Screen
attr_accessor :station
def on_load
self.title = @station[:name]
@layout = StationLayout.new
self.view = @layout.view
end
end
select_station方法:
def select_station(station)
open StationScreen.new(station: station)
end
现在的背面动画很奇怪。注意图像仍然显示了一段时间,然后就消失了。
我做错了什么?如何用ProMotion::Screen
正确地实现它?
更新1:修复了它。ProMotion的例子是错误的建议。
def load_view
self.title = @station[:name]
@layout = StationLayout.new
self.view = @layout.view
end
这样做对吗?
发布于 2015-01-31 11:29:00
经过一些实验,我想出了办法。解决这一问题的方法不止一种:
( 1) on_load
。这里的关键是告诉布局什么是根视图。然后,它可以正确地找出如何正确地做背面动画。如果你不给它根,就像我在刚开始的时候做的那样,动画可能会中断。(至少我是这么理解的)。
def on_load
@layout = StationLayout.new(root: self.view)
@layout.build
end
( 2) load_view
。在这里,由于某种原因,它在不指定根视图的情况下工作正常。我想,当您将self.view分配给layouts视图时,会自动发生这种情况。
def load_view
@layout = StationLayout.new
self.view = @layout.view
end
最后我使用了on_load
。
https://stackoverflow.com/questions/28109776
复制相似问题