2015-07-03 513 views
12

点击某个按钮时,我需要刷新view controller。简单地激活viewDidLoad()似乎没有为我需要做的工作。但是,当我离开view controller然后回到它,它似乎完美的工作?重新加载视图控制器swift

如何刷新/重新加载view controller就好像我已经离开它然后再次回到它,而没有真正离开它?

+0

究竟是你想刷新什么? – streem

+0

您是否找到任何解决方案? –

+0

这就是我回答的另一个问题。请看我的回复: [用新数据更新视图控制器](https://stackoverflow.com/questions/31110923/navigate-swipe-between-articles-in-section-using-table-view-controller/ 46576097#46576097) –

回答

9

无论您在viewDidLoad中编写的代码是什么,请尝试在viewWillappear()中添加该代码。我认为这会解决你的问题。

4

这可能有点晚,但是你试过loadView()

+4

public func loadView()//这是子类应该创建自定义视图层次的地方,如果它们不使用nib。 **不应该直接调用。[moreHere](http://stackoverflow.com/a/8876346/1264893) –

+0

我不认为他是在说要直接调用它。他正在说要在那里添加代码。 –

6

你不应该调用viewDidLoad方法手动, 相反,如果你要重新加载任何数据或任何用户界面,你可以这样做:当你要重新加载数据并刷新接口

override func viewDidLoad() { 
    super.viewDidLoad(); 

    let myButton = UIButton() 

    // When user touch myButton, we're going to call loadData method 
    myButton.addTarget(self, action: #selector(self.loadData), forControlEvents: .TouchUpInside) 

    // Load the data 
    self.loadData(); 
} 

func loadData() { 
    // code to load data from network, and refresh the interface 
    tableView.reloadData() 
} 

,你可以调用self.loadData()

+5

你如何做这个实际的刷新界面部分? –

+1

当您想重新载入时,再次调用loadData以从模型中获取数据。在tableView中调用reloadData()或在常规视图中setNeedsDisplay。 – Vincent

+0

//这是子类应该创建自定义视图层次的地方,如果它们不使用nib。不应该直接调用。 –

0

在任何时候,打电话时要重新加载的viewController的意见或任何看法

<View you want to reload>.setNeedsLayout() 
<View you want to reload>.layoutIfNeeded() 
相关问题