সংক্ষেপে
একটি অনিচ্ছাকৃত অংশ (কখনও কখনও বলা হয়) প্রস্থান segue ) ধাক্কা, মোডাল বা popover segues চলাচল ফিরে ব্যবহার করা যেতে পারে (যেন আপনি ন্যাভিগেশন বার থেকে গৌণ আইটেমটি popped, popover বন্ধ বা modally উপস্থাপন দৃশ্য নিয়ামক বরখাস্ত)। তার উপরে আপনি কেবলমাত্র একটি নয়, তবে ধাক্কা / মডেল / পপওভার সেগগুলির একটি ধারাবাহিকভাবে উদ্বোধন করতে পারেন, উদাহরণস্বরূপ, আপনার নেভিগেশন শ্রেণিবদ্ধের একাধিক পদক্ষেপ "পিছনে ফিরে যান" একক আনইন্ডাইন্ড ক্রিয়া সহ।
আপনি যখন আনইন্ডাইন্ড সিগ সম্পাদন করেন, আপনাকে একটি ক্রিয়া নির্দিষ্ট করতে হবে যা আপনি যে দৃশ্যটি নিয়ন্ত্রণে আনতে চান সেটি নিয়ন্ত্রকের একটি ক্রিয়া পদ্ধতি।
উদ্দেশ্য গ:
- (IBAction)unwindToThisViewController:(UIStoryboardSegue *)unwindSegue
{
}
সুইফট:
@IBAction func unwindToThisViewController(segue: UIStoryboardSegue) {
}
আপনি যখন স্টোরিবোর্ডে আনওয়াইন্ড সেগুটি তৈরি করবেন তখন এই অ্যাকশন পদ্ধতির নামটি ব্যবহৃত হয়। তদ্ব্যতীত, এই পদ্ধতিটি অযাচিত সেগ সম্পাদনের ঠিক আগে ডাকা হয়। UIStoryboardSegue
সেগটি শুরু করা ভিউ কন্ট্রোলারের সাথে ইন্টারঅ্যাক্ট করার জন্য আপনি উত্স প্যারামিটার থেকে উত্স ভিউ কন্ট্রোলার পেতে পারেন (যেমন মডেল ভিউ কন্ট্রোলারের সম্পত্তি মান পেতে) get এই ক্ষেত্রে, পদ্ধতিটির পদ্ধতির মতোই একটি কার্যকারিতা prepareForSegue:
রয়েছেUIViewController
।
আইওএস 8 আপডেট: আনইন্ডাইন্ড সেগগুলি আইওএস 8 এর অভিযোজিত সেগগুলি, যেমন শো এবং শো বিশদরূপেও কাজ করে ।
একটি উদাহরণ
আমাদের নেভিগেশন কন্ট্রোলার এবং তিনটি চাইল্ড ভিউ কন্ট্রোলার সহ স্টোরিবোর্ড রাখুন:
গ্রীন ভিউ কন্ট্রোলার থেকে আপনি রেড ভিউ কন্ট্রোলারে আনইন্ড (পিছনে নেভিগেট) করতে পারেন। নীল থেকে আপনি সবুজ থেকে বা সবুজ হয়ে লাল হয়ে যেতে পারেন। আনইন্ডাইন্ড সক্ষম করতে আপনাকে অবশ্যই রেড এবং গ্রিনে বিশেষ ক্রিয়া পদ্ধতি যুক্ত করতে হবে, উদাহরণস্বরূপ, রেডে অ্যাকশন পদ্ধতিটি এখানে:
উদ্দেশ্য গ:
@implementation RedViewController
- (IBAction)unwindToRed:(UIStoryboardSegue *)unwindSegue
{
}
@end
সুইফট:
@IBAction func unwindToRed(segue: UIStoryboardSegue) {
}
ক্রিয়া পদ্ধতিটি যুক্ত হওয়ার পরে, আপনি প্রস্থান আইকনে নিয়ন্ত্রণ-টেনে স্টোরিবোর্ডে আনওয়াইন্ড সেগটিকে সংজ্ঞায়িত করতে পারেন। বোতামটি টিপলে আমরা এখানে সবুজ থেকে লাল থেকে আনাইন্ডিং করতে চাই:
আপনি যে উইন্ডোটি খুলতে চান তাতে আপনাকে অবশ্যই নিয়ন্ত্রকের সংজ্ঞায়িত ক্রিয়াটি নির্বাচন করতে হবে:
আপনি ব্লু থেকে রেডেও আনইন্ডিং করতে পারেন (যা নেভিগেশন স্ট্যাকের "দুই ধাপ দূরে")। কীটি সঠিক আনওয়াইন্ড ক্রিয়াটি নির্বাচন করছে।
আনওয়াইন্ড সিগুটি সম্পাদন করার আগে অ্যাকশন পদ্ধতিটি বলা হয়। উদাহরণস্বরূপ আমি সবুজ এবং নীল উভয়ই থেকে রেডের কাছে একটি অনিচ্ছাকৃত সিগকে সংজ্ঞায়িত করেছি। আমরা ইউআইএসটিরিবোর্ডসিগি প্যারামিটারের মাধ্যমে অ্যাকশন পদ্ধতিতে আনইন্ডিংয়ের উত্স অ্যাক্সেস করতে পারি:
উদ্দেশ্য গ:
- (IBAction)unwindToRed:(UIStoryboardSegue *)unwindSegue
{
UIViewController* sourceViewController = unwindSegue.sourceViewController;
if ([sourceViewController isKindOfClass:[BlueViewController class]])
{
NSLog(@"Coming from BLUE!");
}
else if ([sourceViewController isKindOfClass:[GreenViewController class]])
{
NSLog(@"Coming from GREEN!");
}
}
সুইফট:
@IBAction func unwindToRed(unwindSegue: UIStoryboardSegue) {
if let blueViewController = unwindSegue.sourceViewController as? BlueViewController {
println("Coming from BLUE")
}
else if let redViewController = unwindSegue.sourceViewController as? RedViewController {
println("Coming from RED")
}
}
আনওয়াইন্ডিং পুশ / মডেল সেগগুলির সংমিশ্রণের মাধ্যমেও কাজ করে। উদাহরণস্বরূপ, যদি আমি একটি মডেল সেগুনের সাথে আরেকটি হলুদ ভিউ কন্ট্রোলার যুক্ত করি, তবে আমরা একক পদক্ষেপে হলুদ থেকে লাল পর্যন্ত সমস্ত পথ খুলে ফেলতে পারি:
কোড থেকে অনিচ্ছাকৃত
যখন আপনি কোনও ভিউ কন্ট্রোলারের প্রস্থান চিহ্নকে নিয়ন্ত্রণ-টেনে কিছু অবিরাম সেগটিকে সংজ্ঞায়িত করেন, তখন নথির আউটলাইনে একটি নতুন সিগ উপস্থিত হয়:
সিগ নির্বাচন এবং বৈশিষ্ট্য পরিদর্শকের কাছে যাওয়া "সনাক্তকারী" সম্পত্তিটি প্রকাশ করে। আপনার সিগকে একটি অনন্য শনাক্তকারী দিতে এটি ব্যবহার করুন:
এর পরে, আনইন্ড শেগ কোডটি অন্য কোনও সিগের মতোই সম্পাদনা করা যেতে পারে:
উদ্দেশ্য গ:
[self performSegueWithIdentifier:@"UnwindToRedSegueID" sender:self];
সুইফট:
performSegueWithIdentifier("UnwindToRedSegueID", sender: self)
dismissViewControllerAnimated:completion:
বাpopViewControllerAnimated:
অর্জন করতে পারে না ?