দ্রুতগতি
সংক্ষিপ্ত উত্তর
NotificationCenterপরিবর্তে একটি পর্যবেক্ষক ব্যবহার করুন viewWillAppear।
override func viewDidLoad() {
super.viewDidLoad()
// set observer for UIApplication.willEnterForegroundNotification
NotificationCenter.default.addObserver(self, selector: #selector(willEnterForeground), name: UIApplication.willEnterForegroundNotification, object: nil)
}
// my selector that was defined above
@objc func willEnterForeground() {
// do stuff
}
দীর্ঘ উত্তর
কোনও অ্যাপ্লিকেশন কখন পটভূমি থেকে ফিরে আসে তা অনুসন্ধান করার জন্য, NotificationCenterবরং কোনও পর্যবেক্ষক ব্যবহার করুন viewWillAppear। এখানে একটি নমুনা প্রকল্প যা দেখায় যে কখন কোন ঘটনাগুলি ঘটে। (এটি এই উদ্দেশ্য-সি উত্তরের একটি অভিযোজন ))
import UIKit
class ViewController: UIViewController {
// MARK: - Overrides
override func viewDidLoad() {
super.viewDidLoad()
print("view did load")
// add notification observers
NotificationCenter.default.addObserver(self, selector: #selector(didBecomeActive), name: UIApplication.didBecomeActiveNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(willEnterForeground), name: UIApplication.willEnterForegroundNotification, object: nil)
}
override func viewWillAppear(_ animated: Bool) {
print("view will appear")
}
override func viewDidAppear(_ animated: Bool) {
print("view did appear")
}
// MARK: - Notification oberserver methods
@objc func didBecomeActive() {
print("did become active")
}
@objc func willEnterForeground() {
print("will enter foreground")
}
}
অ্যাপ্লিকেশন শুরু করার পরে, আউটপুট ক্রমটি হ'ল:
view did load
view will appear
did become active
view did appear
হোম বোতামটি চাপ দেওয়ার পরে অ্যাপ্লিকেশনটিকে অগ্রভাগে ফিরিয়ে আনার পরে আউটপুট ক্রমটি হ'ল:
will enter foreground
did become active
সুতরাং আপনি যদি প্রথমে ব্যবহার করার চেষ্টা করছেন viewWillAppearতবে UIApplication.willEnterForegroundNotificationসম্ভবত আপনি যা চান তা সম্ভবত।
বিঃদ্রঃ
আইওএস 9 এবং তার পরেও আপনার পর্যবেক্ষককে অপসারণ করার দরকার নেই। ডকুমেন্টেশন পদ বলে:
যদি আপনার অ্যাপ্লিকেশনটি আইওএস 9.0 এবং তারপরে বা ম্যাকোস 10.11 এবং তার পরে লক্ষ্য করে তবে আপনাকে তার deallocপদ্ধতিতে কোনও পর্যবেক্ষককে নিবন্ধভুক্ত করার দরকার নেই ।
applicationWillEnterForeground:আপনার অ্যাপ্লিকেশনটি কখন সক্রিয় স্থানে পুনরায় প্রবেশ করেছে তা নির্ধারণ করতে আপনার ব্যবহার করা উচিত ।