স্টোরিবোর্ড আইডি কী এবং আমি কীভাবে এটি ব্যবহার করতে পারি?


110

আমি আইওএস বিকাশে নতুন এবং সম্প্রতি এক্সকোড ৪.৪ এ শুরু করেছি। আমি প্রতিটি ভিউকন্ট্রোলারের জন্য দেখেছি যে আমি স্টোরিবোর্ড আইডি সহ কিছু পরিচয় ভেরিয়েবল সেট করতে পারি। এটি কী এবং আমি কীভাবে এটি ব্যবহার করতে পারি?

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

আমি স্ট্যাকওভারফ্লোতে অনুসন্ধান শুরু করেছি এবং এর কোনও ব্যাখ্যা খুঁজে পাইনি। আমি ধরে নিয়েছি যে এটি কেবল কিছু নির্বোধ লেবেল নয় যা আমি আমার নিয়ামককে ঠিক মনে রাখতে পারি? এটার কাজ কি?

উত্তর:


132

স্টোরিবোর্ড আইডি একটি স্ট্রিং ফিল্ড যা আপনি সেই স্টোরিবোর্ড ভিউকন্ট্রোলারের উপর ভিত্তি করে একটি নতুন ভিউ নিয়ন্ত্রণকারী তৈরি করতে ব্যবহার করতে পারেন। যে কোনও ভিউকন্ট্রোলারের কাছ থেকে উদাহরণ ব্যবহার করা হবে:

//Maybe make a button that when clicked calls this method

- (IBAction)buttonPressed:(id)sender
{
    MyCustomViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"MyViewController"];

   [self presentViewController:vc animated:YES completion:nil];
}

এটি আপনার "মাইভিউকন্ট্রোলার" নামক স্টোরিবোর্ড ভিউকন্ট্রোলারের উপর ভিত্তি করে একটি মাই কাস্টমভিউ কনট্রোলার তৈরি করবে এবং এটি আপনার বর্তমান ভিউ কন্ট্রোলারের উপরে উপস্থাপন করবে

এবং আপনি যদি আপনার অ্যাপের প্রতিনিধিতে থাকেন তবে আপনি ব্যবহার করতে পারেন

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard"
                                                         bundle: nil];

সম্পাদনা: সুইফ্ট

@IBAction func buttonPressed(sender: AnyObject) {
    let vc = storyboard?.instantiateViewControllerWithIdentifier("MyViewController") as MyCustomViewController
    presentViewController(vc, animated: true, completion: nil)
}

সুইফট> = 3 এর জন্য সম্পাদনা করুন:

@IBAction func buttonPressed(sender: Any) {
    let vc = storyboard?.instantiateViewController(withIdentifier: "MyViewController") as! ViewController
    present(vc, animated: true, completion: nil)
}

এবং

let storyboard = UIStoryboard(name: "MainStoryboard", bundle: nil)

আসুন এটি চেষ্টা করে দেখুন এবং আপনি কীভাবে পাবেনself.storyboard
RTB

self.storyboard যে কোনও ভিউকন্ট্রোলার থেকে অ্যাক্সেস করা যায়। আমি এখনই আমার উত্তরটি সম্পাদনা করব যাতে আপনি দেখতে পান
এরিক

এবং আমার অ্যাপডেলিগেট বা অন্য কোনও শ্রেণি থেকে এটি অ্যাক্সেস করার প্রয়োজন হলে কী হবে?
আরটিবি

কোনও ফাইল থেকে স্টোরিবোর্ডে কীভাবে অ্যাক্সেস করবেন তা দেখিয়ে অন্য একটি সম্পাদনা যুক্ত করা হয়েছে।
এরিক

1
self.storyboardস্টোরিবোর্ড থেকে লোড হওয়া যে কোনও ভিউ কন্ট্রোলার থেকে অ্যাক্সেস করা যায়। স্টোরিবোর্ড থেকে যদি ভিউ কন্ট্রোলারটি লোড না করা হয়, তবে সেই সম্পত্তিটি শূন্য।
রব মেয়ফ

13

এরিকের উত্তরে যুক্ত করতে এবং এটি এক্সকোড 8 এবং সুইফট 3 এর জন্য আপডেট করুন:

একটি স্টোরিবোর্ড আইডি ঠিক সেইরকম করে যা নামটি বোঝায়: এটি সনাক্ত করে। কেবল এটি স্টোরিবোর্ড ফাইলটিতে একটি ভিউ কন্ট্রোলার সনাক্ত করে । স্টোরিবোর্ডটি কীভাবে জানতে পারে কোন ভিউ কন্ট্রোলারটি।

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

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

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

@IBAction func buttonPressed(sender: Any) {
    // Here is where we create an instance of our view controller. instantiateViewController(withIdentifier:) will create an instance of the view controller every time it is called. That means you could create another instance when another button is pressed, for example.
    let vc = storyboard?.instantiateViewController(withIdentifier: "MyViewController") as! ViewController
    present(vc, animated: true, completion: nil)
}

দয়া করে সিনট্যাক্সে পরিবর্তনগুলি নোট করুন।


হলুদ সতর্কতা আইকনটি ইঙ্গিত করে যে দ্বিতীয় দর্শন নিয়ন্ত্রকের কোনও প্রবেশ পয়েন্ট এবং / অথবা আইডি নেই to এটি স্টোরিবোর্ড আইডি দিয়ে বা স্টোরিবোর্ডের অন্য ভিউ কন্ট্রোলারের সাথে সংযুক্ত করে সম্বোধন করা যেতে পারে। এইভাবে, স্টোরিবোর্ড এটি কীভাবে পৌঁছাতে এবং সনাক্ত করতে পারে তা জানে।
তাইওয়সাম

আমি স্টোরিবোর্ড আইডি ক্ষেত্রটি খুঁজে পাচ্ছিলাম না, তাই ছবির জন্য ধন্যবাদ। এটি এক্সকোড 9
আইজাক বোসকা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.