দ্রুতগতি
সংক্ষিপ্ত উত্তর
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:
আপনার অ্যাপ্লিকেশনটি কখন সক্রিয় স্থানে পুনরায় প্রবেশ করেছে তা নির্ধারণ করতে আপনার ব্যবহার করা উচিত ।