আইওএস-এ ইউআইএসসিইনডেলিগেট / সুইফটুআই থেকে বেরিয়ে যান


120

আমি বর্তমানে এক্সকোড 11 বিটা 5 ব্যবহার করছি my আমার অ্যাপ্লিকেশনটির মধ্যে এটি আইওএস 12 এবং তার চেয়ে কম বয়সীদের উপর জরিমানা। তবে আইওএস 13 এ দেখে মনে হচ্ছে এটি UISceneডিফল্টরূপে ব্যবহার করছে । এটি আমার অ্যাপ্লিকেশনটিকে কিছু না করার কারণ করছে।

অ্যাপটি যখন নতুন ইনস্টল চালু হয় তখন এমন একটি শর্তাদি রয়েছে যা ব্যবহারকারীকে মেনে নিতে হবে। সম্মত হওয়ার পরে তারা একটি লোডিং স্ক্রিনে যান যা তাদের পরে তাদের মূল দৃষ্টিতে পরিচালিত করে। আমি যে স্ক্রিনশট পোস্ট করেছি তাতে পূর্বের বর্তমানের পিছনের দৃশ্যটি হল স্প্ল্যাশ লোডিং স্ক্রিন।

আমরা শীঘ্রই অ্যাপ্লিকেশন জুড়ে একাধিক দর্শন দৃশ্যের সমর্থন যুক্ত করার বিষয়টি দেখব, তবে এই মুহূর্তে আমাদের উচ্চতর অগ্রাধিকার সামগ্রী রয়েছে যাতে আমাদের কাজ করা দরকার।

https://imgur.com/i0qLhAL

"সমর্থিত একাধিক উইন্ডোজ" অ্যাপ্লিকেশনটির টার্গেটের সাধারণ সেটিংসে ইতিমধ্যে অক্ষম। এছাড়াও আমি info.plist ফাইলটিতে একাধিক উইন্ডোজ সক্ষম করে নেই।

এখনও অবধি সত্যিই কোন কাজ হয়নি। মূলত আমি আইওএস 10-12-এ আসল আচরণটি পুনরুদ্ধার করতে একাধিক উইন্ডোজ এবং ইউআইসিসিন / সুইফটুআই অপ্ট আউট / অনির্বাচিত করতে চাই। আইওএস 13 এ কি সম্ভব বা আমাদের এটি আপডেট করতে হবে?

হালনাগাদ:

এখানে দেখুন ডিবাগ শ্রেণিবদ্ধের একটি স্ক্রিনশট। বামদিকটি আইওএস 12, ডান দিকটি আইওএস 13 এ রয়েছে। তথ্য.পল্লিস্টে বা কোনও দৃশ্যের প্রতিনিধি শ্রেণি বা পদ্ধতিতে কিছু না যুক্ত করে, কেন এটি আলাদা? খুব সবেমাত্র এটি Xcode 11 এ তার বিদ্যমান উত্পাদন প্রস্তুত কোডে চালিয়েছে।

https://imgur.com/C3aLsDo


আপনার কি কেবল আইওএস 13 এবং তার পরে সমর্থন করতে হবে বা আইওএস 13 এবং আইওএস 12 সমর্থন করতে হবে?
rmaddy

iOS 11-13 + (ভবিষ্যতের সংস্করণ) এর মধ্যে @rmaddy সমর্থন।
ডেভিডএ

কোড বা স্টোরিবোর্ডের মাধ্যমে আপনার মূল ইউআই?
রামডি

@ আরমড্ডি এটি স্টোরিবোর্ডগুলিতে সম্পন্ন হয়েছে এর সাথে রেফারেন্স করা xib ভিউকন্ট্রোলারদের একটি সিগ রয়েছে।
ডেভিডএ

আপনার অ্যাপটি কী করছে এবং কখন তা সুনির্দিষ্ট বিবরণ ছাড়াই বলা শক্ত। নোট করুন যে viewWill|DidAppearউপস্থাপিত ভিউ কন্ট্রোলারগুলিকে বরখাস্ত করার সময় আইওএস 13 এ দেখার মতো নিয়ন্ত্রক পদ্ধতিগুলি যেমন একই বলা হয় না। প্রচুর জীবনচক্রের ডিবাগিং বার্তা এবং ব্রেকপয়েন্টগুলি যুক্ত করুন এবং আইওএস 12 এবং 13 এর মধ্যে প্রবাহের তুলনা করুন এবং দেখুন এটি কোথায় আলাদা।
rmaddy

উত্তর:


338

আপনি যখন উচিত যখন আপনার অ্যাপ্লিকেশন আইওএস 13 বছরের কম বয়সী পরে চালানো এবং হয় লোকচক্ষুর ব্যবহার আলিঙ্গন, আপনি সম্পূর্ণরূপে অনির্বাচন যখন আপনি এখনও আইওএস 12 বা তার আগে সমর্থন করতে পারে।

  • তথ্য.পালিস্ট থেকে "অ্যাপ্লিকেশন দৃশ্যের ম্যানিফেস্ট" এন্ট্রি সম্পূর্ণরূপে সরান।

  • যদি কোনও দৃশ্যের প্রতিনিধি শ্রেণি থাকে তবে এটি সরিয়ে দিন।

  • যদি আপনার অ্যাপের প্রতিনিধিতে দৃশ্য সম্পর্কিত কোনও পদ্ধতি থাকে তবে সেই পদ্ধতিগুলি সরিয়ে দিন।

  • অনুপস্থিত থাকলে, var window: UIWindow?আপনার অ্যাপের প্রতিনিধিটিতে সম্পত্তি যুক্ত করুন ।

আপনার অ্যাপ্লিকেশনটির এখন কেবল অ্যাপের প্রতিনিধি এবং আইওএস 13 এর অধীনে এটি আইওএস 12 এর মতো জীবনচক্র হওয়া উচিত।

দ্রষ্টব্য: এগুলির কোনওটিই সুইফ্ট বা সুইফ্টইউআইয়ের সাথে নির্দিষ্ট নয়।


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

4
আমার জন্য একই ঘটনা ঘটছে এবং আমার তথ্য.প্লেস্টে আমার কোনও স্পষ্ট প্রবেশ নেই, না কোনও অ্যাপডেলিগেট পদ্ধতি এবং না কোনও দৃশ্য ডিজিটাল ক্লাস। আমি ডেভিডকে রুটভিউ কনট্রোলার হিসাবে "শর্তাবলী" এর মতো আমার নিয়ামক সেট করছি এবং এটি উপরের প্রশ্নে এখানে প্রদর্শিত হিসাবে একই প্রদর্শিত হচ্ছে। আমি যেমন এই UI ভুলত্রুটি আটকে আছি এবং এগিয়ে যেতে পারছি না তাই সাহায্য করুন .. উগ!
মহসিন খুবাইব আহমেদ

4
@ মহসিনখুবাইব আহমেদ আপনি সম্পূর্ণ ভিন্ন ইস্যু সম্পর্কে জিজ্ঞাসা করছেন। দেখুন stackoverflow.com/questions/56435510/...
rmaddy

4
হাই! আমি 3-পদক্ষেপ-নির্দেশনা অনুসরণ করেছি তবে লঞ্চ স্ক্রিনটি প্রদর্শিত হওয়ার পরে একটি কালো পর্দা পেয়েছে। প্রধান স্টোরিবোর্ডটি নির্বাচিত এবং প্রাথমিক ভিউ নিয়ন্ত্রকও রয়েছে। তোমার কি কোন মতামত আছে?
ব্যবহারকারী3191334

4
@ ব্যবহারকারী3191334 আমিও ব্ল্যাক স্ক্রিন পেয়েছি। আমার ক্ষেত্রে এটি অন্ধকার মোড ছিল যা আমাকে একটি ডিফল্ট কালো পটভূমি দেয়। আপনার বেস স্টোরিবোর্ডে কিছু সামগ্রী যুক্ত করুন এবং সমস্ত উপস্থিত হবে।
গর্ডন ডাভ

42

উত্তরটি ব্যবহার করে আশা করি কোনও মন্তব্যের চেয়ে ভাল ফর্ম্যাট করুন। (বিনা দ্বিধায় মন্তব্য করুন এবং আমি সম্পাদনা করব))

এটি এমন একটি বিষয় যা আমিও মুখোমুখি হয়েছিলাম এবং এখানে খেলার বেশ কয়েকটি দৃশ্য রয়েছে:

  • আপনি যদি এক্সকোড ১১- তে বিদ্যমানUIKit অ্যাপ্লিকেশনটিতে কাজ করতে চান তবে কেবল এটি খুলুন এবং এটি ঠিকঠাক কাজ করা উচিত। আমার সমস্ত অ্যাপ্লিকেশনগুলিতে কোনও SceneDelegate ফাইল AppDelegateবা স্টোরিবোর্ডে কোনও পরিবর্তন নেই have
  • আপনি যদি আইওএস 13 কে লক্ষ্য করে একটি নতুন UIKITঅ্যাপ্লিকেশন তৈরি করতে চান তবে আপনি "সুইফট ইউআই ব্যবহার করুন" চেকবক্সটি চেক না করে রেখেছেন তা নিশ্চিত করেই এটি তৈরি করুন।

তবে আমি ভাবছি আপনি যদি তৃতীয় দৃশ্যের মুখোমুখি হন - যা আমি প্রায় এক সপ্তাহ আগে করেছি। আইওএস 13 এর চেয়েও আগের কিছু লক্ষ্য করে একটি নতুন IUIKit অ্যাপ তৈরি করা । (আমি আসলে আইওএস 9 টার্গেট করেছি!)

হ্যাঁ, আপনার টেমপ্লেটটি আপনাকে একটি SceneDelegateফাইল / শ্রেণীর পাশাপাশি 15 টি ত্রুটি (বিটা 5 হিসাবে) দেবে । ভাগ্যক্রমে, এক্সকোড আপনাকে একটি ব্যতীত অন্য সবটিকে স্বয়ংক্রিয়ভাবে সংশোধন করতে সহায়তা করবে।

শেষটি হ'ল একটি লাইন যোগ করা যা এটি SceneDelegateক্লাসের অংশ, কিন্তু দুর্ভাগ্যক্রমে অ্যাপল এটিকে AppDelegateক্লাসের বাইরে ফেলেছে - যা এক ডজনেরও বেশি @available(iOS 13.0, *)ধারাটির পরে আপনি SceneDelegateযদি আইওএস 12 চালাচ্ছেন তবে কি বেছে নিয়েছেন এবং অনুমান করেন? এটা না সেখানে ApDelegate!

এটি আপনার অ্যাপলিজেটে যুক্ত করুন:

var window: UIWindow?

এই মুহুর্তে, আপনার UIKitআইওএস 12 এবং তার আগেরের জন্য একটি চলমান অ্যাপ্লিকেশন থাকা উচিত ।


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

অ্যাপডেলিগেটেও এর ইতিমধ্যে ভের উইন্ডো রয়েছে: ইউআই উইন্ডো?
ডেভিডএ

তুমি আমাকে চিন্তিত করেছ! (এবং আমি এখনও কিছুটা উদ্বিগ্ন।) আমি আমার বিদ্যমান অ্যাপ্লিকেশনগুলির জন্য খুব সামান্য আপডেট করেছি - গত সপ্তাহে সুইফটইউআই সম্পর্কে হতাশা ছিল এবং আমি কেবল আইওএস 13 এর জন্য ইউআইকিটিতে একটি বিন্যাস চেষ্টা করার বিষয়ে আগ্রহী ছিলাম। কিন্তু আমার বিদ্যমান অ্যাপস? তারা আইপ্যাড মাল্টি টাস্কিং সমর্থন করে তবে এক্সকোড ১১ এ অপরিবর্তিত রেখে গেছে আমার কাছে নেই SceneDelegateএবং আশেপাশে পরীক্ষা করে বলা হয়েছে (ক) তারা আইওএস ১৩ এ কাজ করে এবং (খ) তারা মোটেও একাধিক উইন্ডো সমর্থন করে না, কেবল দুটি অ্যাপ্লিকেশনের মধ্যে বিভক্ত দৃষ্টিভঙ্গি রয়েছে। (আমি ড্র্যাগ-এন্ড-ড্রপ সমর্থন করি না)) আপনার শেষের দিকে কি আর কিছু চলছে?
dfd

পুনরাবৃত্তি করার জন্য, আমি কেবলমাত্র Xcode 11 এ আমার Xcode 10 অ্যাপ্লিকেশনটি খুললাম না SceneDelegate, না SwiftUI, আমার iOS 9+ অ্যাপ্লিকেশনগুলির একাধিক উদাহরণ তৈরি করার ক্ষমতা নেই। পারফরম্যান্স সর্বদা হিসাবে একই - এগুলি সবই CoreImageরিয়েল-টাইমে আপডেট হওয়া কাস্টম ফিল্টারগুলি - এবং, ভাল, আমার জন্য? ভিউ হায়ারার্কিতে দৃশ্যের সাথে সম্পর্কিত কোনও ওএস সম্পর্কিত ক্রাফ্ট যদি রয়েছে, যদি দৃশ্যের সমর্থন না করে তবেই তা মূ .় হবে। (এবং শেষ করতে, হ্যাঁ, আমি এখনও কিছুটা উদ্বিগ্ন But তবে এটি বিটা ৫ও রয়েছে)) আশা করি আপনার একটি ভাল ব্যাকআপ রয়েছে যা আমি যা দেখছি তা পুনরুত্পাদন করতে পারে।
dfd

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

7

আমি dfd এর উত্তর ব্যবহার করে কাজটি করতে পেরেছি, তবে আমার অ্যাপ্লিকেশনটি উদ্দেশ্য-সি-তে রয়েছে বলে আমাকে একটি পরিবর্তন করতে হয়েছিল:

অবজেক্টিভ-সি তে আপনি রাখতে চান

@property (strong, nonatomic) UIWindow *window;

AppDelegate.h এ (। মি তে নয়)


4

ঠিক আছে তাই আমি এটি বুঝতে পেরেছি। অ্যাপল এর নতুন ডিফল্ট কার্ড উপস্থাপনা শৈলীর আইওএস 13 এর পরিবর্তনের কারণে, আমার স্প্ল্যাশ স্ক্রিন থেকে আমার কাস্টম ফ্লো নেভিগেশন কন্ট্রোলারে নতুন উপস্থাপনায় ডিফল্ট হয়ে গেছে (নীচের স্ক্রিনশট দেখুন) story

সেগ

আমি কীভাবে স্থির করেছিলাম তা পুরানো স্টাইলে ফিরে যেতে হবে যা পুরাতন জীবনচক্রের কাছে খেলাপি হয়েছিল। নীচে স্ক্রিনশট দেখুন।

স্টোরিবোর্ড সিকো টাইপ

কেন এটি নিশ্চিত নয়, যেহেতু এটি আমার আবেদনের একমাত্র জায়গা যা এই কারণে ঘটেছে (বেশ বড় অ্যাপ্লিকেশন তাই আমাকে নিশ্চিত করার জন্য সমস্ত স্টোরিবোর্ডের মধ্য দিয়ে যেতে কিছুটা সময় ব্যয় করতে হবে)।


4
আপনার প্রশ্ন জিজ্ঞাসা করে যে কীভাবে দৃশ্য ব্যবহার করা যায় না। এই উত্তরটি দৃশ্যগুলি বেছে নেওয়ার সমাধান সরবরাহ করে না। এটি গ্রহণযোগ্য উত্তর হওয়া উচিত নয়। আপনি যা করতে চেয়েছিলেন তা যদি নতুন কার্ড-স্টাইলের উপস্থাপনা এড়ানো হয় তবে আপনি সেই উত্তরটি বেশ কয়েকটি সদৃশটিতে খুঁজে পেতে পারেন addressing
rmaddy

1

এক্সকোড 12 - সুইফ্ট 5.3 - আইওএস 14

এক্সকোড 12 এবং সুইফ্ট 5.3 এবং এর সাহায্যে আপনার একাধিক @mainপ্ল্যাটফর্ম অ্যাপ থাকতে পারে যার কোনও SceneDelegateইভেন্ট বা ইভেন্ট নেই AppDelegate। এখানে কেবলমাত্র একটি সরল ফাইল থাকবে:

import SwiftUI

@main
struct MyMultiPlatformApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.