ios - প্রোগ্রামেটিকভাবে সুইফ্টের পূর্ববর্তী ভিউকন্ট্রোলারে ফিরে যান




swift segue (9)

আমি একটি বোতাম ক্লিকের একটি পৃষ্ঠায় ব্যবহারকারীকে প্রেরণ। এই পৃষ্ঠাটি একটি ইউআইটিএবল ভিউ নিয়ন্ত্রণকারী

এখন যদি ব্যবহারকারী কোনও ঘরে ট্যাপ করেন তবে আমি তাকে আগের পৃষ্ঠায় ফিরে যেতে চাই।

আমি self.performSegue("back").... মতো কিছু সম্পর্কে ভেবেছিলাম self.performSegue("back").... তবে এটি একটি খারাপ ধারণা বলে মনে হচ্ছে।

এটি করার সঠিক উপায় কী?


আপনি যেখানে কোনও UIViewController মধ্য থেকে কোনও UIViewController উপস্থাপন করেছেন এমন ক্ষেত্রে যেমন ..

// Main View Controller
self.present(otherViewController, animated: true)

কেবল dismiss ফাংশনটি কল করুন:

// Other View Controller
self.dismiss(animated: true)

আমি নেভিগেটেড কন্ট্রোলারের "ভিউইডডিডিস্পিয়ার" কোড লিখে মূল পৃষ্ঠাতে পুনর্নির্দেশ করতে পারি,

override func viewDidDisappear(_ animated: Bool) { self.navigationController?.popToRootViewController(animated: true) }


এটি চেষ্টা করুন: পূর্ববর্তী দৃষ্টির জন্য এটি ব্যবহার করুন:

navigationController?.popViewController(animated: true)  

এই কোডটি ব্যবহার করতে রুট করতে পপ করুন:

navigationController?.popToRootViewController(animated: true) 

যদি সেগু 'শো' বা 'পুশ' ধরনের হয় তবে আপনি ইউআইএনএভিগেশন কন্ট্রোলারের ইনস্ট্যান্সে "পপভিউ কনট্রোলার (অ্যানিমেটেড: বুল)" আবেদন করতে পারেন। অথবা যদি সিগু "ধরণের" উপস্থিত থাকে তবে ইউআইভিউউকন্ট্রোলারের উদাহরণ সহ "বরখাস্ত (অ্যানিমেটেড: বুল, সমাপ্তি: (() -> অকার্যকর)?))" কল করুন


দ্রুত এবং উপরে 5

কেস 1: নেভিগেশন নিয়ামক ব্যবহার করে

self.navigationController?.popViewController(animated: true)

কেস 2: উপস্থিত ভিউ কন্ট্রোলার ব্যবহার করে

self.dismiss(animated: true, completion: nil)

শেষ ভিউ হিসাবে একটি ট্যাবভিউ কনট্রোলার সহ সুইফট 4.0 এক্সকোড 10.0

যদি আপনার সর্বশেষ ভিউকন্ট্রোলারটি কোনও ট্যাবভিউকন্ট্রোলারে এম্বেড থাকে তবে নীচের কোডটি আপনাকে মূলটিতে প্রেরণ করবে ...

navigationController?.popToRootViewController(animated: true)
navigationController?.popViewController(animated: true)

তবে আপনি যদি সত্যিই শেষ দর্শনে ফিরে যেতে চান (এটি ট্যাব 1, ট্যাব 2 বা ট্যাব 3 ভিউ হতে পারে ..) আপনাকে নীচের কোডটি লিখতে হবে:

_ = self.navigationController?.popViewController(animated: true)

এটি আমার পক্ষে কাজ করে, আমি আমার ট্যাবভিউয়ের একটির পরে একটি ভিউ ব্যবহার করছিলাম :)


সুইফট 3

আমি উত্তরে দেরি করতে পারি তবে দ্রুত 3 এর জন্য আপনি এটি এইভাবে করতে পারেন:

override func viewDidLoad() {
    super.viewDidLoad()

    navigationItem.leftBarButtonItem = UIBarButtonItem(title: "< Back", style: .plain, target: self, action: #selector(backAction))

    // Do any additional setup if required.
}

func backAction(){
    //print("Back Button Clicked")
    dismiss(animated: true, completion: nil)
}

সুইফট 3:

আপনি যদি আগের ভিউ কন্ট্রোলারে ফিরে যেতে চান

_ = navigationController?.popViewController(animated: true)

আপনি যদি আবার রুট ভিউ নিয়ন্ত্রকের কাছে যেতে চান

_ = navigationController?.popToRootViewController(animated: true)

স্টোরিবোর্ডে কীভাবে আপনার ভিউকন্ট্রোলারটিকে একটি নেভিগেশনকন্ট্রোলারে এম্বেড করা যায় সে সম্পর্কিত প্রশ্নের জন্য:

  1. আপনার স্টোরিবোর্ডটি খুলুন যেখানে আপনার ভিন্ন ভিউ নিয়ন্ত্রণকারী রয়েছে
  2. আপনি নিজের নেভিগেশন কন্ট্রোলার থেকে শুরু করতে চান এমন ভিউ কন্ট্রোলারটি আলতো চাপুন
  3. এক্সকোডের শীর্ষে, "সম্পাদক" এ আলতো চাপুন
  4. -> এম্বেড এ আলতো চাপুন
  5. -> "নেভিগেশন নিয়ন্ত্রক আলতো চাপুন




segue