একটি স্টোরিবোর্ড থেকে অন্য স্টোরিবোর্ডে সিগন করা, বা অন্য স্টোরিবোর্ডে কোনও ভিউ কন্ট্রোলারে একটি স্টোরিবোর্ড এম্বেড করা সম্ভব? আমি একটি স্থান প্রয়োজন UITabBarController
একটি UINavigationController
, এবং আমি তাদের সুন্দর রাখা এবং আলাদা করতে চাই।
একটি স্টোরিবোর্ড থেকে অন্য স্টোরিবোর্ডে সিগন করা, বা অন্য স্টোরিবোর্ডে কোনও ভিউ কন্ট্রোলারে একটি স্টোরিবোর্ড এম্বেড করা সম্ভব? আমি একটি স্থান প্রয়োজন UITabBarController
একটি UINavigationController
, এবং আমি তাদের সুন্দর রাখা এবং আলাদা করতে চাই।
উত্তর:
হ্যাঁ, তবে আপনাকে এটি প্রোগ্রামিয়ালি করতে হবে:
// Get the storyboard named secondStoryBoard from the main bundle:
UIStoryboard *secondStoryBoard = [UIStoryboard storyboardWithName:@"secondStoryBoard" bundle:nil];
// Load the initial view controller from the storyboard.
// Set this by selecting 'Is Initial View Controller' on the appropriate view controller in the storyboard.
UIViewController *theInitialViewController = [secondStoryBoard instantiateInitialViewController];
//
// **OR**
//
// Load the view controller with the identifier string myTabBar
// Change UIViewController to the appropriate class
UIViewController *theTabBar = (UIViewController *)[secondStoryBoard instantiateViewControllerWithIdentifier:@"myTabBar"];
// Then push the new view controller in the usual way:
[self.navigationController pushViewController:theTabBar animated:YES];
এক্সকোড From থেকে, আপনি স্টোরিবোর্ড রেফারেন্স ব্যবহার করে গ্রাফিক্যালি এটি করতে পারেন:
আপনার স্টোরিবোর্ডে স্টোরিবোর্ড উল্লেখ যুক্ত করুন। ভিউকন্ট্রোলার এবং স্টোরিবোর্ড উল্লেখ (সিটিআরএল + ড্র্যাগ) এর মধ্যে সিগ তৈরি করুন
তারপরে এই ক্ষেত্রগুলি পূরণ করুন।
যেখানে "টিউটোরিয়াল" হল "টিউটোরিয়াল.স্টরিবোর্ড" ফাইল এবং "মেইনটিউটোরিয়ালকন্ট্রোলার" আপনার ভিউকন্ট্রোলারসেটেটিংয়ের "স্টোরিবোর্ড আইডি" ক্ষেত্র
আপনি সত্যিই সেগগুলি ম্যানুয়ালি করতে পারবেন না কারণ ইউআইএসটিরিবোর্ডস্যাগ একটি বিমূর্ত শ্রেণি। আপনাকে এটিকে সাবক্লাস করতে হবে এবং perform
এটি কিছু করার জন্য ক্রম প্রয়োগ করতে হবে। এগুলি আসলে স্টোরিবোর্ডে তৈরি হওয়া বোঝায়। আপনি ভিউ কন্ট্রোলারটিকে ম্যানুয়ালি চাপ দিতে পারেন, যদিও এটি একটি ভাল সমাধান। lnafziger এর উত্তর এটি ভাল করে:
UIStoryboard *secondStoryBoard = [UIStoryboard storyboardWithName:@"secondStoryBoard" bundle:nil];
UIViewController *theTabBar = [secondStoryBoard instantiateViewControllerWithIdentifier:@"myTabBar"];
[self.navigationController pushViewController:theTabBar animated:YES];
তবে একটি বিষয় লক্ষণীয় যে আপনি বলেছিলেন যে আপনি জিনিসগুলি সুন্দর এবং পৃথক রাখতে চান। স্টোরিবোর্ডগুলির ধারণা হ'ল আপনার ডিজাইনের সমস্ত কাজ এক জায়গায় করার সময় জিনিসগুলিকে আলাদা রাখার অনুমতি দেওয়া। প্রতিটি দেখার নিয়ামক স্টোরিবোর্ডের মধ্যে অন্যের থেকে দুর্দান্ত এবং পৃথক separated পুরো ধারণাটি হ'ল এগুলিকে এক জায়গায় রাখা। এটি সুন্দরভাবে সাজান যাতে এটি সংগঠিত হয় এবং আপনি যেতে ভাল হবেন। যদি আপনার কাছে এটির পক্ষে যুক্তিসঙ্গত কারণ না থাকে তবে আপনার এটি আলাদা করা উচিত নয়।
আপনার ইউআইটিএববারকন্ট্রোলারগুলিকে একটি ইউআইএনএভিগেশন কন্ট্রোলারে রাখা উচিত নয়। এটি ভুল স্বতঃকরণ / ভিউ আনলোডিং ইত্যাদির মতো বাগের জন্য জিজ্ঞাসা করছে, কারণ অ্যাপল এই ধরণের সংযোজনটিকে সমর্থন করে না :
ভিউ কন্ট্রোলারগুলিকে একত্রিত করার সময়, নিয়ন্ত্রণের ক্রমটি গুরুত্বপূর্ণ; শুধুমাত্র কিছু নির্দিষ্ট ব্যবস্থা বৈধ। শিশু থেকে পিতামাতার কাছে নিয়ন্ত্রনের ক্রমটি নিম্নরূপ:
- বিষয়বস্তু দেখার নিয়ন্ত্রক এবং নমনীয় সীমানা রয়েছে এমন ধারক দর্শন নিয়ন্ত্রক (যেমন পৃষ্ঠার দৃশ্য নিয়ন্ত্রণকারী)
- নেভিগেশন দর্শন নিয়ামক
- ট্যাব বার নিয়ামক
- স্প্লিট ভিউ কন্ট্রোলার
এখানে একটি দ্রুত সংস্করণ:
let targetStoryboardName = "Main"
let targetStoryboard = UIStoryboard(name: targetStoryboardName, bundle: nil)
if let targetViewController = targetStoryboard.instantiateInitialViewController() {
self.navigationController?.pushViewController(targetViewController, animated: true)
}
আপনি কি নিম্নলিখিত চেষ্টা করেছেন:
আপনার নেভিগেশন নিয়ামক এবং শীর্ষ মেনুতে লিঙ্কযুক্ত আপনার দর্শন নিয়ন্ত্রণকারী নির্বাচন করতে 2 / ক্লিক করুন: সম্পাদক -> এম্বেড করুন -> ট্যাব বার নিয়ামক
দ্রষ্টব্য: আমি এটি পরীক্ষা করিনি কারণ আমি বিপরীতটি ব্যবহার করছি: ট্যাবড বার অ্যাপ্লিকেশন তৈরি করা এবং নেভিগেশন কন্ট্রোলারটি ভিতরে রেখে)।