2017-01-18 1 views
0

앱에 푸시 알림을 구현했습니다. 사용자는 새로운 메시지가있을 때마다 서버로부터 푸시 알림을받습니다.iOS swift 3 백그라운드에서 앱을 열 때 tableview를 다시로드하십시오.

사용자가 푸시 알림을 클릭하면 앱이 열립니다. 이 상황이 발생하면 내 app에 tableview를 다시로드하여 사용자에게 최근 뉴스 피드를 보여주고 싶습니다.

스위프트 3에서 가능합니까?

답변

3

내가 알다시피, 최근 뉴스 피드 인 ViewController에서 열렸던 앱의 경우 흥미 롭다. 그런 다음 사용자가 백그라운드에서 닫았다. 나중에 푸시를받는 동안 사용자가이를 클릭하고 동일한 뉴스 피드 컨트롤러를 엽니 다.

당신은 그것은 가장 간단한 해결책

deinit { 
    NotificationCenter.default.removeObserver(self) 
} 

구독 취소 잊지 마세요

func yourMethod() { 

    // send request to update newsfeed 
    // then update tableView 
    // tableView.reloadData() 
} 

같은 yourMethod을

NotificationCenter.default.addObserver(self, selector: #selector(yourMethod), name: NSNotification.Name.UIApplicationWillEnterForeground, object: nil) 

처럼 UIViewControllerUIApplicationWillEnterForeground 통지에 가입하고 구현해야하고 나는 가장 간단한 경우를 설명했다. 설명하지 않은 몇 가지 복잡한 사례가 있습니다 (예 :

)

앱이 닫혀 있고 푸시를 기반으로 계층 구조를 만들어야합니다 (willFinishLaunchingWithOptions).

앱이 다른 페이지에서 열리 며,이 경우 ViewController 계층을 재구성하여 필요한 ViewController를 표시해야합니다. 이 경우, 누른 Push Notification에서 필요한 ViewController에 일부 데이터를 전달해야합니다.

희망이 있습니다.

관련 문제