আইওএস 7 - ডিফল্ট ভিউ কন্ট্রোলার ইনস্ট্যান্ট করতে ব্যর্থ


94

আমি একটি নতুন নির্মিত অ্যাপটিতে এক্সকোড 5 ব্যবহার করছি এবং আমি যখন এটি তৈরি করি আমি রান বোতামের জন্য যাই এবং এতে ক্লিক করি, তখন প্রকল্পটি তৈরি হয়ে যায় তবে এটি আইওএস সিমুলেটরে প্রদর্শিত হয় না এবং আমি নিম্নলিখিত বার্তাটি পাই:

 Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - 
 perhaps the designated entry point is not set?

আমি অবশ্যই এটি সম্পর্কে গুগল করেছি এবং প্রত্যেকেই উল্লেখ করেছে যে এটি ঘটছে কারণ এক্সকোড এখনও জানেন না যে কোন ভিউ নিয়ামকটি প্রাথমিক সেটি। তবে অদ্ভুত বিষয়টি হ'ল আমি অ্যাপটি একটি পৃষ্ঠা ভিত্তিক হিসাবে তৈরি করেছি (এটিও সিঙ্গল-ভিউ এবং ট্যাবড অ্যাপ্লিকেশন বিকল্পগুলি চেষ্টা করে) অ্যাপ এবং এক্সকোড এর জন্য ইতিমধ্যে একটি স্টোরিবোর্ড সংজ্ঞায়িত করেছিল।

এছাড়াও, যখন আমি প্রকল্পের মূল ইন্টারফেস অপশনে গিয়ে স্টোরিবোর্ডটি (এক্সকোড নিজেই "মেইন" নামকরণ করে) সেট করি এবং স্টোরিবোর্ডে, আমার ভিউ কন্ট্রোলারটিকে "প্রাথমিক ভিউ নিয়ন্ত্রক" হিসাবে সেট করা হয়

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

কি সমস্যা?


এটি প্রোগ্রামিয়ালি সেট করার চেষ্টা করুন ...
শামসুদ্দিন টি কে

@ রমশাদ হাই, আমি আইওএস বিকাশ সম্পর্কে এক নবজাতক। আমি এটা কিভাবে করবো?
রড্রিগোয়ালভেসির


4
ভিউ কন্ট্রোলারটিকে প্রাথমিক ভিউ কন্ট্রোলার হিসাবে সেট করতে নিশ্চিত করুন।
সন্দীপ

কাশিফ আহমেদ যেমন উল্লেখ করেছেন, আপনার সোর্স কোড হিসাবে আপনার তথ্য.পলিট ফাইলটি খুলতে হবে এবং <key> ইউআইসিসিনটিরিবোর্ড ফাইল </key> স্ট্রিংটি সম্পাদনা করতে হবে এবং সেখানে আপনার নতুন স্টোরিবোর্ডের নাম সরবরাহ করতে হবে।
বোগদান

উত্তর:


56

সুতরাং এটি আমার সাথেও ঘটেছিল। আমি 50 বার পরীক্ষা করেছিলাম এবং আমার "ইস ইনিশিয়াল ভিউ কন্ট্রোলার" চেক করা হয়েছিল, বিশ্বাস করুন। এটা নীল থেকে ঘটেছে। তাহলে আমি কীভাবে এটি ঠিক করেছি?

  1. আপনার প্রকল্পে একটি নতুন স্টোরিবোর্ড তৈরি করুন, এর নামকরণ করুন মেইন_আইফোনভি 2 (বা আইপ্যাডভি 2 আপনার মূল স্টোরিবোর্ড শৈলীর উপর নির্ভর করে)
  2. ভাঙা স্টোরিবোর্ডটি খুলুন, সাদা অঞ্চলের যে কোনও জায়গায় ক্লিক করুন এবং কমান্ড-এ টিপুন, তারপরে কমান্ড-সি (সমস্ত নির্বাচন করুন এবং অনুলিপি করুন)
  3. আপনার নতুন স্টোরিবোর্ডটি খুলুন এবং একই সঠিক সেটআপটি আটকে দিতে কমান্ড- v টিপুন
  4. আপনার প্রকল্পের সেটিংসে যান, আপনার "মেইন ইন্টারফেস "টিকে নতুন মেইন_আইফোনভি 2-তে পরিবর্তন করুন (যদি এটি আপনার আইপ্যাড হয় এবং আপনি একটি সর্বজনীন অ্যাপ লিখছেন তবে আপনাকে -Info.plist সম্পাদনা করতে হবে এবং মান" স্টোরিবোর্ড ফাইল "সন্ধান করতে হবে বেস নাম (আইপ্যাড)
  5. পুনরায় কম্পাইল করুন এবং আপনার চুলগুলি টানতে বন্ধ করুন

4
বিকাশকারী বুনিয়াদি তালিকাভুক্ত পদক্ষেপগুলি চেষ্টা করার সময় একই সমস্যার মুখোমুখি হয়েছিল। একটি নতুন স্টোরিবোর্ড তৈরি করেছে, নতুনটিকে প্রাথমিক ভিউ কন্ট্রোলার হিসাবে চিহ্নিত করেছে এবং প্রজেক্টস ডিপ্লোয়মেন্ট ইনফোের মাধ্যমে নতুনটিকে মূল স্টোরি বোর্ড হিসাবে সেট করেছেন। এটি যাদুতে কাজ শুরু করে। এটি Xcode সহ কিছু বাগ কিনা তা নিশ্চিত নয়। বিকাশকারী
অ্যাপ্লিকেশন

এটি কাজ করে না বা আমি বিশ্বাস করি কাজ করবে না, যতক্ষণ না প্রাথমিক নেভিগেশন কন্ট্রোলার হিসাবে "ইনিটাল ভিউ কন্ট্রোলার হিসাবে সেট করা থাকে" সেট না করা হয়।
সুমিত কুমার সাহা

আমি এটি চেষ্টা করতে যাচ্ছি। তবে আমি আবার পরিষ্কার করে তৈরি করেছি এবং এটি কাজ করেছে
স্কাইওয়াকার

306

চেক বৈশিষ্ট্য পরিদর্শকটিতে ইজ ইনিশিয়াল ভিউ কন্ট্রোলার

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


অবশ্যই এটি 'এটি কাজ করার উপায়'। তবে আমি 'বাগ' এরও মুখোমুখি হয়েছি এবং তারপরে এটি কার্যকর হয় না। একটি নতুন তৈরি করা, এবং আপনার সমস্ত জিনিস অনুলিপি কাজ করে! আমার ক্ষেত্রে.
TYS

তবে তার ভিউ কন্ট্রোলার ইতিমধ্যে ইনিশিয়াল ভিউ কন্ট্রোলার হিসাবে সেট করা আছে, তাই না?
আইউরি ভ্যাসেলেনকো

@ ইউরাভ্যাসেলেনকো: এটি আগে ছিল না, তাই আমি নির্বাচিত হিসাবে চিহ্ন দ্বারা নির্দেশ করেছি।
আশ্বিন আজাদিয়া

4
যাদের এটির প্রয়োজন তাদের জন্য এটি আরও কিছুটা বিশদ তৈরি করার জন্য, একটি স্টোরিবোর্ডের জন্য প্রাথমিক নিয়ামক সেট করা
সের্গেই বাশারভ

41

প্রথমে ডান হাতের ইউটিলিটিস বারে ভিউ কন্ট্রোলারে ক্লিক করুন । এরপরে অ্যাট্রিবিউট ইন্সপেক্টর নির্বাচন করুন এবং দেখুন নিয়ামক বিভাগের অধীনে 'ইস ইনিশিয়াল ভিউ কন্ট্রোলার' চেকবক্সটি পরীক্ষা করা হয়েছে কিনা তা নিশ্চিত করুন!


4
এটা আমার সমস্যা ছিল। আমি আমার স্টোরিবোর্ডটিতে থাকা ডিফল্ট ভিউ কন্ট্রোলারটিকে মুছে ফেলেছি এবং যখন আমি অন্য যুক্ত করেছি তখন এটি পরীক্ষা করা উচিত।
অরগমির

18

আপনার যদি কিছু কোড থাকে তবে এই সতর্কতাটিও জানানো হয়েছে:

    window = UIWindow(frame: UIScreen.mainScreen().bounds)
    window?.rootViewController = myAwesomeRootViewController
    window?.makeKeyAndVisible()

এই ক্ষেত্রে, লক্ষ্য সেটিংসের প্রথম পৃষ্ঠায় যান এবং Main Interfaceখালি সেট করুন, আপনার অ্যাপ্লিকেশনটির জন্য আপনার স্টোরিবোর্ড প্রবেশের প্রয়োজন নেই।


14

ইন্টারফেস বিল্ডার ব্যবহার:

' প্রাথমিক দৃশ্য নিয়ামক ' সেট আছে কিনা তা পরীক্ষা করুন। আপনি নীচের পদক্ষেপগুলি ব্যবহার করে এটি সেট করতে পারেন:

  1. আপনার ভিউ কন্ট্রোলার নির্বাচন করুন (যা প্রাথমিক স্ক্রিন হিসাবে প্রদর্শিত হবে)।
  2. ইউটিলিটি উইন্ডো থেকে অ্যাট্রিবিউট ইন্সপেক্টর নির্বাচন করুন ।
  3. ভিউ কন্ট্রোলার বিভাগ থেকে ' ইস ইনিশিয়াল ভিউ কন্ট্রোলার ' নির্বাচন করুন (যদি না হয়)।

আপনি যদি এই পদক্ষেপটি করেন এবং তবুও ত্রুটি পেয়ে থাকেন uncheck and do it again.

সমস্যা সমাধানের পদক্ষেপ

প্রোগ্রামগতভাবে ব্যবহার:

উদ্দেশ্য গ :

        self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

        UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"]; // <storyboard id>

        self.window.rootViewController = viewController;
        [self.window makeKeyAndVisible];

        return YES;

দ্রুত:

        self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
        let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)

        var objMainViewController: MainViewController = mainStoryboard.instantiateViewControllerWithIdentifier("MainController") as! MainViewController

        self.window?.rootViewController = objMainViewController

        self.window?.makeKeyAndVisible()

        return true

4
আপনি যদি এটি প্রোগ্রামিয়ালি করেন তবে আপনার টার্গেটের মূল ইন্টারফেস থেকে আপনার স্টোরিবোর্ডটি সরিয়ে ফেলতে ভুলবেন না - কেবল এটি ফাঁকা রাখুন। এছাড়াও এই ভিতরে যাওয়া উচিত didFinishLaunchingWithOptions
জর্দান এইচ

@ জোর্ডানএইচ কিভাবে মূল ইন্টারফেস থেকে স্টোরিবোর্ড সরিয়ে ফেলবেন?
পাসক্যালস

@ পাস পাঠ্যটি নির্বাচন করুন এবং মুছুন চাপুন, এটি সাধারণ ট্যাবে রয়েছে
জর্দান এইচ

12

আমি এটি আমার ট্যাব বার কন্ট্রোলারটি একটি কালো স্ক্রিন সহ সিমুলেটারে উপস্থিত না হওয়ার সাথে অভিজ্ঞতা অর্জন করেছি। আমার অ্যাপটি সিমুলেটারে উপস্থিত হওয়ার জন্য আমি নিম্নলিখিতটি করেছি।

  1. মেইন.স্টরিবোর্ডে যান।
  2. Is Initial View Controllerবৈশিষ্ট্য পরিদর্শক ট্যাবটির নীচে চেক করুন ।

বৈশিষ্ট্য পরিদর্শক মধ্যে প্রাথমিক দেখুন নিয়ামক হয়।

যদি আপনি দুর্ঘটনাক্রমে সেই দৃশ্য নিয়ন্ত্রণকারীটিকে মুছে ফেলেছেন বা অন্যথায় এটি ডিফল্ট হিসাবে তৈরি করেন না, তবে আপনি ত্রুটিটি দেখতে পাবেন "ইউআইএমইনস্টিরিবোর্ডফিল 'মেইন' এর জন্য ডিফল্ট ভিউ কন্ট্রোলার ইনস্ট্যান্ট করতে ব্যর্থ হয়েছে - সম্ভবত মনোনীত এন্ট্রি পয়েন্টটি সেট করা নেই?" আপনার অ্যাপ্লিকেশনটি যখন সরল কালো স্ক্রিন সহ প্রবর্তন করে।

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


10

উইন্ডোটি ম্যানুয়ালি সেটআপ করুন,

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    if (!application.keyWindow.rootViewController) 
     {
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

        UIViewController *myViewController= [storyboard instantiateViewControllerWithIdentifier:@"myViewController identifier"];

         application.keyWindow.rootViewController = myViewController;
     }
}

এর জন্য কি স্টোরিবোর্ডে প্রাথমিক ভিউ কন্ট্রোলারটিকে চেক করা বন্ধ করা দরকার?
বিডিভি

7

আমি স্টোরিবোর্ডের ফাইলের নাম " মেইন.স্টোরিবোর্ড " TO: " XXX.storyboard " পরিবর্তন করলে আমি এই ত্রুটিটি পেয়েছি

আমার জন্য সমাধানটি ছিল:

  • পণ্য-> পরিষ্কার
  • পরিবর্তন: ফাইলগুলি সমর্থন করে -> তথ্য.পিলিস্ট -> মূল স্টোরিবোর্ড ফাইলের নাম -> প্রধান TO: XXX

শুভকামনা



3

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

উপরের সঠিক উত্তর ছাড়াও, নিশ্চিত করে নিন যে আপনি সাধারণভাবে সঠিক প্রধান ইন্টারফেস সেট করেছেন make


3

1 ম বিকল্প

আপনি যদি নিজের কাস্টম স্টোরিবোর্ডটিকে ডিফল্ট ভিউ নিয়ামকের পরিবর্তে সেট করতে চান।

তথ্য.প্লেস্ট ফাইল থেকে এই বৈশিষ্ট্যটি পরিবর্তন করুন

<key>UISceneStoryboardFile</key> <string>Onboarding</string>

বোর্ডিং আপনার স্টোরিবোর্ডের নাম হবে

এই তথ্য.প্লেস্ট ফাইলটিতে ডান ক্লিক করুন এবং উত্স কোড হিসাবে খোলার জন্য

2 য় বিকল্প

1- আপনার প্রকল্পে ক্লিক করুন

2- লক্ষ্য বিভাগ থেকে আপনার প্রকল্প নির্বাচন করুন

3- স্থাপনা ইন্টারফেস বিভাগে সরান

4- মেইন ইন্টারফেস ক্ষেত্র থেকে আপনার স্টোরিবোর্ড বিভাগটি পরিবর্তন করুন

দয়া করে মনে রাখবেন আপনার স্টোরিবোর্ডের প্রাথমিক ভিউ নিয়ামক সেট করুন


4
<key> UISceneStoryboardFile </key> জিনিসটি এটি আমার জন্য স্থির করে। ধন্যবাদ
বোগদান

2

আপনি যদি নতুন স্টোরিবোর্ড যুক্ত করেন তবে আপনাকে নিম্নলিখিত পয়েন্টগুলি পরীক্ষা করতে হবে।

1) আপনার স্ট্রিটবোর্ড ফাইলের বেস নাম (আইপ্যাড) বা (আইফোন) এর প্লাস্ট ফাইলের চেক মানটি আপনার স্টোরিবোর্ডের ফাইলের নামের সাথে মিলিয়ে নেওয়া উচিত ( এক্সটেনশন যুক্ত করবেন না st স্টোরবোর্ড) )

2) স্টোরিবোর্ডে একটি ভিউ কন্ট্রোলার থাকা উচিত যা সেট হিসাবে প্রাথমিক ভিউ নিয়ামক হিসাবে সেট করা হয়

3) আপনার প্রকল্পটি পরিষ্কার করুন এবং তৈরি করুন। :)

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


1

যদি আপনি নিয়মিত উত্স নিয়ন্ত্রণে আপনার কোডটি প্রতিশ্রুতিবদ্ধ থাকেন তবে এটি আপনাকে নতুন স্টোরিবোর্ড তৈরি করার এবং সম্ভবত আরও সমস্যা উপস্থাপনের ঝামেলা বাঁচাতে পারে ...

আমি এই সংস্করণটির গিট সোর্স কোডটি ভাঙাটির বিরুদ্ধে কাজ করে যা তার সাথে তুলনা করে এটি সমাধান করতে সক্ষম হয়েছি। ডিফটি দেখিয়েছে যে প্রথম লাইনে প্রাথমিক ভিউ কন্ট্রোলারের আইডি থাকা উচিত, আমার ক্ষেত্রে, প্রারম্ভিক ভিউকন্ট্রোলার = "কিউ 7 ইউ-ইও-ভিএক্সডাব্লু" । আমি আইডিটির অস্তিত্ব আছে তা নিশ্চিত হওয়ার জন্য উত্স কোডটি দিয়ে অনুসন্ধান করেছি। আমাকে যা করতে হয়েছিল তা আবার ফিরিয়ে দেওয়া হয়েছিল এবং সবকিছু আবার কাজ করেছিল!

<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5056" systemVersion="13E28" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" initialViewController="Q7U-eo-vxw">
    <dependencies>
        <deployment defaultVersion="1296" identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
    </dependencies>
    <scenes>

এখানে কয়েকটি পদক্ষেপ যা আপনাকে সমস্যা সমাধানে সহায়তা করতে পারে:

  1. ব্যর্থ স্টোরিবোর্ডে ডান ক্লিক করুন এবং শেষ প্রতিশ্রুতি থেকে আপনার পরিবর্তনগুলি সংরক্ষণ করতে উত্স নিয়ন্ত্রণ> প্রতিশ্রুতি ... ব্যবহার করুন।
  2. আপনার ব্যর্থ স্টোরিবোর্ডে ডানদিকে ক্লিক করার চেষ্টা করুন এবং স্টোরিবোর্ডের এক্সএমএল দেখতে "হিসাবে> উত্স কোড খুলুন" ব্যবহার করুন।
  3. ইন ডকুমেন্ট উপাদান, গুণ "নামের জন্য চেহারা initialViewController "। যদি এটি অনুপস্থিত থাকে তবে চিন্তা করবেন না, আমরা এটি ঠিক করব। যদি এটি উপস্থিত থাকে, তার জন্য নির্ধারিত আইডিটিতে ডাবল ক্লিক করুন, এটি অনুলিপি করতে কমান্ড-সি, নথিতে আরও গভীরভাবে অনুসন্ধানের জন্য কমান্ড- f কমান্ড-ভি। এটি নিয়ামকের সনাক্তকারী যা প্রাথমিক ভিউ সরবরাহ করবে should যদি এটি নথিতে সংজ্ঞায়িত না করা হয় তবে এটি একটি সমস্যা - আপনার ক্ষেত্রে এটি ডকুমেন্ট ট্যাগ থেকে সরিয়ে নেওয়া উচিত আমার ক্ষেত্রে প্রাথমিক ভিউকন্ট্রোলার = "কিউ 7 ইউ-ইও-ভিএক্সডাব্লু"
  4. এক্সকোড মেনু আইটেমে যান এবং দেখুন সংস্করণ সম্পাদক> তুলনা ভিউ চয়ন করুন
  5. এটি আপনার স্থানীয় সংস্করণটি বাম দিকে এবং historicalতিহাসিক সংস্করণটি ডানদিকে দেখায়। এই গল্পের বোর্ডের জন্য কমিটগুলির একটি তালিকা পেতে historicalতিহাসিক সংস্করণের নীচে তারিখে ক্লিক করুন। আপনি যেটি জানেন সেটিকে বেছে নিন এবং নথির উপাদানটির তুলনা করুন । * প্রাথমিক ভিউ কন্ট্রোলারের আইডি কী ? এটা কি আলাদা? যদি তা হয় তবে এটিকে সম্পাদনা করে হাত দিয়ে চালিয়ে যান। এক্সকোড historicalতিহাসিক তুলনায় সরঞ্জাম কার্যকর

1

অ্যাপডিলেজেটে আপনার উইন্ডোটির ভেরি আছে কিনা তা পরীক্ষা করুন।

var window: UIWindow? 

এবং আপনার তথ্য.প্লেস্ট ফাইলের স্টোরিবোর্ডও পরীক্ষা করে দেখুন।

<key>UIMainStoryboardFile</key>
<string>Main</string>

প্রোগ্রামডিক্যালি অ্যাপডেলিগেটে রুট ভিউকন্ট্রোলার সেট করা সতর্কতাটি ঠিক করতে চলেছে না। আপনার স্টোরিবোর্ডে ভিউ কন্ট্রোলার সেট করতে দেওয়া হবে বা প্রোগ্রামক্রমে এটি করা উচিত তা বেছে নেওয়া উচিত।


1

এক্সকোড 11 এবং তারপরে তৈরি প্রকল্পগুলি, প্রকল্পের সেটিংস থেকে কেবল প্রধান ইন্টারফেস ফাইল পরিবর্তন করা যথেষ্ট হবে না।

আপনাকে ম্যানুয়ালি তথ্য.পলিট ফাইলটি সম্পাদনা করতে হবে এবং UISceneStoryboardFileপাশাপাশি স্টোরিবোর্ডের নামটিও সেট করতে হবে ।


1

উপরের কোনওটিই আমার পক্ষে সমস্যাটি সমাধান করেনি। আমার ক্ষেত্রে এটি সঠিক অ্যাপ্লিকেশন দৃশ্যে ম্যানিফেস্ট সেট করে না।

আমাকে মেইন হিসাবে ব্যবহৃত লগইনস্ক্রিন পরিবর্তন করতে হয়েছিল

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


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