নতুন আইওএস 13 মডেল উপস্থাপনা: উপস্থাপক কন্ট্রোলার নীচে নামবে না


11

আইওএস ১৩-এ ইউআইভিউউকন্ট্রোলারদের মডেল উপস্থাপন করার সময় আমার একটি অদ্ভুত আচরণ রয়েছে iOS আমি আইওএস ১৩-তে যে নতুন উপস্থাপনা শৈলীটি দেখেছি তা এরকম দেখাচ্ছে:

উপস্থাপিত ভিউ কন্ট্রোলার উপস্থাপিত ভিউ কন্ট্রোলারের পিছনে উপস্থিত হয়। এটি একটি "স্ট্যাক" নকল করে নীচে স্থানান্তরিত হয়

উপস্থাপিত ভিউ কন্ট্রোলার উপস্থাপিত ভিউ কন্ট্রোলারের পিছনে উপস্থিত হয়।  এটি একটি "স্ট্যাক" নকল করে নীচে স্থানান্তরিত হয়

এদিকে, আমার অ্যাপ্লিকেশনটির মাধ্যমে দর্শন নিয়ন্ত্রকদের উপস্থাপন করার সময়, আমি এই প্রভাবটি পেতে থাকি:

উপস্থাপন করা ভিউ কন্ট্রোলার কোনও নতুন ভিউ কন্ট্রোলার উপস্থাপন করার সময় মোটেও সরবে না

উপস্থাপন করা ভিউ কন্ট্রোলার কোনও নতুন ভিউ কন্ট্রোলার উপস্থাপন করার সময় মোটেও সরবে না

আমি এই ভিউ নিয়ন্ত্রক উপস্থাপন করতে এই কোডটি ব্যবহার করি:

let controller = storyboard?.instantiateViewController(withIdentifier: "tutorial") as! TutorialController
controller.modalPresentationStyle = .pageSheet
controller.modalTransitionStyle = .coverVertical
present(controller, animated: true, completion: nil)

আমার প্রশ্নটি এখানে: আমি কেন ভাবছি তা ভাবছি এবং যদি সাধারণ আইওএস 13 স্টাইলে (উপস্থাপক দৃশ্যের নিয়ামকটি পিছনে সরে যায়) সাথে ভিউ কন্ট্রোলারদের উপস্থাপন করার কোনও উপায় থাকে।

আগাম ধন্যবাদ!


একটি পরীক্ষা হিসাবে, controller.modalTransitionStyle = .coverVerticalএবং এমনকি মন্তব্য করার চেষ্টা করুন controller.modalPresentationStyle = .pageSheet(যদিও এই কোডটি কোনও আইপ্যাডে চালানো হয় তবে উপস্থাপনা শৈলীর প্রয়োজন হবে)।
rmaddy

আমি এটি মন্তব্য করেছিলাম তবে এতে কোনও পরিবর্তন হয় না :(
সেন্ট্রামগুই

উত্তর:


3

সমস্যাটি দেখা যাচ্ছে আমার ভিউ কন্ট্রোলার শ্রেণিবিন্যাস। আমি আমার অ্যাপ্লিকেশনটির উপস্থাপনা ভিউ নিয়ন্ত্রককে মূল ভিউ নিয়ন্ত্রণকারী করে এটি ঠিক করতে সক্ষম হয়েছি। প্রথমে আমি কল করে রুট ভিউ নিয়ন্ত্রণকারী হিসাবে ব্যাকগ্রাউন্ড কন্ট্রোলার সেট করেছি

window.rootViewController = self

এবং তারপরে আমার আগের কোডটি ব্যবহার করে

let controller = storyboard?.instantiateViewController(withIdentifier: "tutorial") as! TutorialController
controller.modalPresentationStyle = .pageSheet
controller.modalTransitionStyle = .coverVertical
present(controller, animated: true, completion: nil)

আমি ভিউ কন্ট্রোলার উপস্থাপন। যারা সাহায্য করার চেষ্টা করেছেন তাদের সবাইকে ধন্যবাদ!


আমারও একই সমস্যা হচ্ছে। আপনি কোথায় রুটভিউ নিয়ন্ত্রণকারী পতাকা সেট করেছেন? ঠিক সেগু এর আগে?
পাওয়ে জেগোদা-ফেরচমিন

আমি "ব্যাকগ্রাউন্ড কন্ট্রোলার" উপস্থাপন করার সময় এটি সেট করেছিলাম। আসুন বিষয়গুলিকে আরও সহজ করার জন্য তাদের 1, 2 এবং 3 টি নিয়ন্ত্রক বলুন (1 পিছনের দিক থেকে সর্বাধিক দূরে, 2 3 এর পিছনের পটভূমিতে এবং 3 টি পূর্ববর্তী টিউটোরিয়াল কন্ট্রোলার হিসাবে থাকা)। আমরা বর্তমানে কন্ট্রোলারটির দিকে তাকিয়ে আছি। নিয়ন্ত্রক 1 উপস্থাপক 2 তে উপস্থিত () কে কল করার পরিবর্তে আমি কন্ট্রোলার 2 কে রুট ভিউ নিয়ামক হিসাবে সেট করেছি। এটি মূলত কন্ট্রোলার 1 এর হাত থেকে মুক্তি পায় এবং আমাদের উইন্ডোতে এখন এর শ্রেণিবিন্যাসের মধ্যে কেবল 2 নিয়ামক রয়েছে। এখন, আপনি নিয়ামক 3 সাধারণত কন্ট্রোলার 2 এ উপস্থিত () কল করে উপস্থাপন করতে পারেন।
সেন্ট্রামগুই

অবশ্যই, এটি আমার পক্ষে কাজ করে তবে সিগুয়ের সময় অবিচ্ছিন্ন স্ট্যাটাস বার বা অ্যানিমেশন কাটার মতো বিভিন্ন ধরণের সমস্যার সৃষ্টি করে, এছাড়াও আমি মনে করি এটি নিরাপদ নয়। এর আরও ভাল সমাধান হতে হবে ...
পায়ে জেগডা-ফেরচমিন

এই সমস্যাগুলি কখন ঘটে? আপনি যখন উপস্থিতকে () কল করবেন বা যখন আপনি রুট ভিউ নিয়ন্ত্রণকারী সেট করবেন? অদৃশ্য হয়ে যাওয়া স্থিতি দণ্ডটি হতে পারে কারণ স্থিতি দণ্ডটি কালো লেখায় রয়েছে এবং একটি কালো পটভূমিতে উপস্থিত হয় যখন উপস্থিত () এটি অ্যাপ্লিকেশনটির ব্যাকগ্রাউন্ডের সাথে মিশে যায়।
সেন্ট্রামগুই

1
আমি একটি সাধারণ ডেমো প্রকল্প তৈরি করেছি। আপনি এটি এখানে দেখতে পারেন: গিথুব । সমস্ত যুক্তি কন্ট্রোলার 1.সুইফ্টে রয়েছে। আমাকে জানতে দা্ও এটা সাহয্য করে কি - না!
সেন্ট্রামগুই

1

আমি মনে করি vc.modalPresentationStyle = .fullScreenইউআইএনএভিগেশন কন্ট্রোলার না থাকলে ব্যবহার করে সমস্যাটি সমাধান করা যেতে পারে , অন্যথায় আপনি এই কোডগুলি নীচে ব্যবহার করতে পারেন:

let navigationController = UINavigationController(rootViewController: vc) 
navigationController.modalPresentationStyle = .fullScreen 
present(vc, animated: true)

কারণ আইওএস 13 এর সাথে এটি একটি নতুন বৈশিষ্ট্য যা অ্যাপল আইওএস 12-এ ফুলস্ক্রিন থেকে মডেল শীটে ভিউ কন্ট্রোলারগুলির ডিফল্ট উপস্থাপনা শৈলীতে পরিবর্তন করেছে Apple


2
.ফুলস্ক্রিন এটিকে পুরানো আইওএস 12 উপস্থাপনাটির মতো দেখায় যেখানে আপনি এর পিছনে নিয়ামকটি মোটেই দেখতে পাচ্ছেন না। আমি যা করতে যাচ্ছি তা নয়।
সেন্ট্রামগুই

@CentrumGuy, আপনি দেখতে পারেন লিঙ্ক " medium.com/better-programming/... ", এটা বিস্তারিত ব্যাখ্যা করা হয়েছে।
অ্যাপল

1
আমি জানি যে অ্যাপল আইওএস 13-তে ডিফল্ট উপস্থাপনা শৈলীর পরিবর্তন করেছে However তবে আমি যখন আমার অ্যাপ্লিকেশনটিতে আমার ভিউ কন্ট্রোলারগুলি উপস্থাপন করি তখন উপস্থাপক নিয়ন্ত্রণকারী আইওএস 13-এ অন্য কোথাও এর মতো চলে না। আপনি প্রথম এবং দ্বিতীয়টির মধ্যে পার্থক্যটি দেখতে পারেন উপস্থাপনার দৃশ্য নিয়ামককে শীর্ষস্থানীয় দর্শনীয় নিয়ামকের পিছনে যেভাবে প্রদর্শিত হয় তা চিত্র। আমি প্রথম ছবিটির মতো আমার প্রদর্শিত হতে চাই
সেন্ট্রামগুই

আমি আনন্দিত আমি সাহায্য করতে পারে!
গ্লোটাচা

1

প্রোগ্রামেটিক্যালি:

let vc = UIViewController()
vc.modalPresentationStyle = .fullScreen //or .overFullScreen for transparency
self.present(vc, animated: true, completion: nil)

স্টোরিবোর্ড থেকে:

এখানে চিত্র বর্ণনা লিখুন

এটাই. রুট কন্ট্রোলার বা উইন্ডো দিয়ে মোটেও খেলতে হবে না।

রেফারেন্সের জন্য, এই নিবন্ধটি দেখুন


0

আমরা ইন্সপেক্টর টুল বারে এটি পরিবর্তন করতে পারি। এটি অর্জনের জন্য: পরিদর্শক টোলবারের পঞ্চম বিভাগে যান এবং তারপরে উপস্থাপনা ক্ষেত্রটি পুরো স্ক্রিনে পরিবর্তন করুন।


-1

এটি আপনার সেট করতে হবে এমন একমাত্র সম্পত্তি

presentedViewController.modalPresentationStyle = .automatic

Https://developer.apple.com/videos/play/wwdc2019/224/ এ বিস্তারিত


এটিকে স্বয়ংক্রিয়ভাবে সেট করা এই সমস্যাটি ঠিক করতে দেখা যাচ্ছে না
সেন্ট্রামগুই

অগ্রভাগের ভিউ কন্ট্রোলারের পিছনে থাকা ভিউ কন্ট্রোলারকে আমি "উপস্থিত" বলি। (আপনি যেটি কন্ট্রোলারের পিছনে দেখতে পারেন)
সেন্ট্রামগুই

এটা কি মূল? আপনি
উইন্ডো.রোটভিউ কনট্রোলার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.