Tia*_*oso 38 uiviewcontroller ios
我有一个View控制器显示一些信息(不是表视图).
我有一个远程服务器的更新调用,它填充了我的数据库.我想在更新调用完成后完全重新加载我的ViewController.
我该怎么办?
Moa*_*eed 23
如果你知道你的数据库已经更新,你想只刷新viewcontrolle(这也是我的情况).我没有找到任何其他的解决方案,但我做的是当我的数据库更新我打电话
[self viewDidLoad];
再次,它工作.请记住,如果您覆盖其他viewWillAppear或loadView,则以相同的顺序调用它们.喜欢.
[self viewDidLoad]; [self viewWillAppear:YES];
但我认为应该有一个更具体的解决方案,如浏览器中的刷新按钮.如果有人有plz上传anse
Rui*_*res 12
你真的不需要这样做:
[self.view setNeedsDisplay];
Run Code Online (Sandbox Code Playgroud)
老实说,在这种情况下,我认为这是"让最好的"解决方案的希望.有几种方法可以更新你的UIViews:
每个人都有利有弊.根据您要更新的内容以及业务层(服务器连接)与业务层之间的"连接"类型UIViewController,我可以根据您的需求推荐一个.
jua*_*lla 11
如果要重新加载最初从XIB加载的ViewController,可以使用下一个UIViewController扩展:
extension UIViewController {
func reloadViewFromNib() {
let parent = view.superview
view.removeFromSuperview()
view = nil
parent?.addSubview(view) // This line causes the view to be reloaded
}
}
Run Code Online (Sandbox Code Playgroud)
试试这个,您必须调用这两种方法来重新加载视图,因为这对我有用,
-客观-C
[self viewDidLoad];
[self viewWillAppear:YES];
Run Code Online (Sandbox Code Playgroud)
-迅速
self.viewDidLoad()
self.viewWillAppear(true)
Run Code Online (Sandbox Code Playgroud)