2017-12-04 2 views
0

을 segueing 전에 홈페이지보기 컨트롤러에서 테이블보기를로드하는 방법 :에서 테이블보기로드 데이터를 API를 사용하고 표시하지만 너무 오래 걸립니다. 메인 컨트롤러에서 부하가 발생하려고합니다. 엑스 코드 9.1</p> <p>나는 두 개의 뷰 컨트롤러 (한 MAINVIEW 한 표보기)</p> <p>문제가 스위프트 3에서 작업

나는 사용자 정의 메소드 테이블보기가 너무 많은 기능을 가지고 있으며, 나는 그것을 호출하는 방법을 잘 모르겠어요 그러나 How to instantiate and load a view controller before segueing to it using swift

를 작성했습니다.

테이블보기 코드 :

public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return array.count 
} 
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    return cell 
} 

func loadData(){ 
//loads data 
DispatchQueue.main.sync(execute:{ 
    self.tableView.reloadData() 
} 

질문 : 가장 좋은 방법은 사용자 정의 메소드를 만들거나 다른 방법은 무엇입니까? 데이터를로드 할 수 있도록이 모든 작업을 주보기 컨트롤러로 수행하려고합니다. 표보기로 이동하면 데이터가로드 될 수 있습니다.

+0

스택 오버플로에 오신 것을 환영합니다. [둘러보기] (https://stackoverflow.com/tour)를 보내주십시오. – Xcoder

+0

segue 전에 뷰 컨트롤러를로드 할 필요가없는 것 같아요, segue 전에 데이터를로드하기 만하면됩니다. 주 컨트롤러에 데이터를로드 한 다음 데이터를 prepareForSegue의 테이블 컨트롤러로 전달합니다. 테이블 컨트롤러의 멤버 var에 데이터를 설정하고 모든 테이블 뷰 대리자 메서드에 해당 var를 사용합니다. – FryAnEgg

+0

더 나은 접근 방법은 테이블 뷰 컨트롤러에로드를 유지하는 것입니다.하지만 Segue를 준비 할 때 호출하십시오. – zombie

답변

0

Table View Controller 클래스의 ViewDidAppear 메서드에서 API 호출을 시도해보십시오. 그런 식으로 앱이 View Controller와 연결되어 데이터를 호출합니다. 앱은 더 빠르게 나타나지만 같은 시간이 걸릴 것입니다. 이 방법으로 ViewDidLoad의 시간 초과 및 기본 데이터를 관리 할 수도 있습니다.

0

도움 주셔서 감사합니다.

사실 FryAnEgg의 의견을 반영하고 API에서로드하기 위해 메인 VC에 전역 변수를 만들었습니다.

홈페이지 VC :

var Global X 

class Main VC: UIViewController { 
    loadDataFunc(){ 
     GlobalX.append(data) 
    } 
} 

의 TableView :

public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return GlobalX.count //calling Global Variable 
    } 
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    return cell 
    } 

내가 다음 표보기 컨트롤러에서 글로벌 변수라고하고 일했다!

다시 한 번 감사드립니다 모두

2

는 NSNotificationCenter를 사용할 수 있습니다 segueing 전에 기본보기에 tablview로드합니다. ViewDidLoad를 호출하여 데이터를 다시로드합니다.

관련 문제