স্টোরিবোর্ড ব্যবহার করা এটি খুব সহজ। আপনি কেবল অ্যাকশনটিকে "প্রস্থান" এ টানুন। তবে কীভাবে আমি আমার কোড থেকে কল করব?
স্টোরিবোর্ড ব্যবহার করা এটি খুব সহজ। আপনি কেবল অ্যাকশনটিকে "প্রস্থান" এ টানুন। তবে কীভাবে আমি আমার কোড থেকে কল করব?
উত্তর:
খুলে ফেলার জন্য সেগের নাম .োকান।
তারপরে, - (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender.
আপনার সিগু দিয়ে সনাক্ত করুন।
উদ্দেশ্য সি এবং সুইফ্ট সহ এখানে একটি সম্পূর্ণ উত্তর:
1) IBAction
আপনার গন্তব্য ভিউ কন্ট্রোলারে একটি অনিচ্ছাকৃত সিগ তৈরি করুন (যেখানে আপনি সেলাই করতে চান)। বাস্তবায়ন ফাইলের যে কোনও জায়গায়।
// Objective C
- (IBAction)unwindToContainerVC:(UIStoryboardSegue *)segue {
}
// Swift
@IBAction func unwindToContainerVC(segue: UIStoryboardSegue) {
}
2) সোর্স ভিউ কন্ট্রোলারে (আপনি যে নিয়ামকটি থেকে সিক্রেট করছেন) ⌃ + প্রস্থান করতে "ক্রিয়াকলাপের নাম" থেকে টেনে আনুন। আপনার পপআপের প্রথম ধাপে তৈরি করা অচিহ্নিত সেগুটি দেখতে হবে। (যদি আপনি এটি দেখতে না পান তবে এক ধাপ পর্যালোচনা করুন)। আনউইন্ডটিটো কনটেনারভিসি বাছুন: পপআপ থেকে, বা আপনার সোর্স কন্ট্রোলারটিকে আনওয়াইন্ড আইবিএક્શનের সাথে সংযুক্ত করতে আপনি নিজের পদ্ধতির নাম দিয়েছেন।
3) স্টোরিবোর্ডের সোর্স ভিউ কন্ট্রোলারের ডকুমেন্টের রূপরেখায় সিগ নির্বাচন করুন (এটি নীচের দিকে তালিকাভুক্ত করা হবে), এবং এটি একটি সনাক্তকারী দিন ।
৪) সোর্স ভিউ কন্ট্রোলার থেকে এই পদ্ধতিটি ব্যবহার করে আনইন্ড সিগডকে কল করুন , আপনার আনইন্ডিং সেগের নামটি স্থির করুন।
// উদ্দেশ্য গ
[self performSegueWithIdentifier:@"unwindToContainerVC" sender:self];
// সুইফ্ট
self.performSegueWithIdentifier("unwindToContainerVC", sender: self)
বিশেষ দ্রষ্টব্য। সোর্স কন্ট্রোলারের যে কোনও উন্মুক্ত বৈশিষ্ট্য অ্যাক্সেস করতে আনওয়াইন্ড পদ্ধতিতে সেগ প্যারামিটারের সোর্স ভিউকন্ট্রোলার সম্পত্তিটি ব্যবহার করুন। এছাড়াও, লক্ষ্য করুন যে কাঠামোটি উত্স নিয়ামককে বরখাস্ত করে। আপনি যদি নিশ্চিত করতে চান যে লগ বার্তা সহ উত্স নিয়ামকটিতে একটি ডেলোক পদ্ধতি যুক্ত করা হয় যা একবার নিহত হওয়ার পরে তা চালানো উচিত। ডেলোক যদি আগুন না দেয় তবে আপনার ধরে রাখতে পারে একটি চক্র।
(IBAction)unwindToContainerVC:(UIStoryboardSegue *)segue
ctrl+drag
থেকে ViewController
থেকে Exit
অবিশ্বাস্যভাবে সহায়ক ছিল। ধন্যবাদ!
bradleygriffith
এর উত্তর দুর্দান্ত ছিল। আমি 10 পদক্ষেপ নিয়েছি এবং সরলকরণের জন্য একটি স্ক্রিনশট তৈরি করেছি। এটি এক্সকোড 6 এর একটি স্ক্রিনশট।
unwind segue
পাশের বারটি নির্বাচন করুন :[self performSegueWithIdentifier:@"unwindIdentifier" sender:self];
UIViewController
। তারপরে আপনার সমাধানটি কাজ করবে
আমি ব্যবহার করেছি [self dismissViewControllerAnimated: YES completion: nil];
যা আপনাকে কলিংয়ে ফিরিয়ে দেবে ViewController
।
আনওয়াইন্ড সেগুয়ে অ্যাপলের টেকনিক্যাল নোট থেকে পাঠ্য উদ্ধৃত করা: একটি অযাচিত সিগ যুক্ত করার জন্য যা কেবলমাত্র প্রোগ্রামিকভাবে উদ্দীপ্ত হবে, দৃশ্যের দৃশ্যের নিয়ামক আইকনটি থেকে তার প্রস্থান আইকনে নিয়ন্ত্রণ + টেনে আনুন, তারপরে পপআপ মেনু থেকে নতুন সেগমেন্টের জন্য একটি আনইনড ক্রিয়া নির্বাচন করুন।
উপরের বিশাল চৌধুরীর উত্তর আমার পক্ষে কাজ করেছিল। সিকটিকে ম্যানুয়ালি ট্রিগার করতে আমি এটি যুক্ত করব:
[self performSegueWithIdentifier:@"mySegueName" sender:self];
ভিউকন্ট্রোলারের মধ্যে থেকে আপনাকে স্টোরিবোর্ডে ভিউকন্ট্রোলারের দৃশ্যের অধীনে এবং আরএইচএসে থাকা বৈশিষ্ট্য দৃষ্টিতে আনইন্ড সিগ নির্বাচন করতে হবে যাতে উপরের উদাহরণে আপনি কোডটিতে ("মাইসিগনাম" নাম উল্লেখ করছেন এমন পরিচয়কারী ক্ষেত্রটি নাম রাখে তা নিশ্চিত করে )।
যদি আপনি এই পদক্ষেপটি বাদ দেন তবে উপরের রেখাটি একটি ব্যতিক্রম ছুঁড়ে দেবে যা সিক নামটি জানা যায়নি।
পিছনে সামঞ্জস্যপূর্ণ সমাধান যা আগ্রহী তাদের ios6 এর পূর্বে সংস্করণগুলির জন্য কাজ করবে:
- (void)unwindToViewControllerOfClass:(Class)vcClass animated:(BOOL)animated {
for (int i=self.navigationController.viewControllers.count - 1; i >= 0; i--) {
UIViewController *vc = [self.navigationController.viewControllers objectAtIndex:i];
if ([vc isKindOfClass:vcClass]) {
[self.navigationController popToViewController:vc animated:animated];
return;
}
}
}
সুইফট 4 :
1. আপনি যা খুলে দিতে চান নিয়ন্ত্রণের ভিতরে সেগুর সাথে একটি @ আইবিএশন তৈরি করুন :
@IBAction func unwindToVC(segue: UIStoryboardSegue) {
}
২. স্টোরিবোর্ডে, নিয়ামক থেকে আপনি সিআরটিএল থেকে টানুন (আনইন্ডিং) করতে চান নিয়ন্ত্রণ সাইন থেকে টানুন সাইন থেকে প্রস্থান করতে এবং আপনার আগে তৈরি পদ্ধতিটি চয়ন করতে:
৩. এখন আপনি লক্ষ্য করতে পারেন যে নথির রূপরেখায় আপনার কাছে "আনওয়াইন্ড সেগু ...." শিরোনাম সহ নতুন লাইন রয়েছে। এখন আপনার এই লাইনে ক্লিক করুন এবং শনাক্তকারীকে সেট করতে অ্যাট্রিবিউট ইন্সপেক্টরটি খুলুন (আমার ক্ষেত্রে উইন্ডসইগেইডিন্টিফায়ার )।
৪. আপনি প্রায় শেষ! এখন আপনাকে ভিউ কন্ট্রোলারটি খুলতে হবে যা আপনি খুলে যেতে চান এবং এমন একটি পদ্ধতি তৈরি করতে পারেন যা সেগ সম্পাদন করবে। উদাহরণস্বরূপ আপনি বোতামটি যুক্ত করতে পারেন, @ আইবিএક્શનের সাথে কোডের সাথে এটি সংযুক্ত করুন , তার পরে এই আইবিএ ક્શનের মধ্যে পারফরমসেট যুক্ত করুন (আইডেন্টিফায়ার: প্রেরক :) পদ্ধতি:
@IBAction func unwindToSomeVCWithSegue(_ sender: UIButton) {
performSegue(withIdentifier: "unwindSegueIdentifier", sender: nil)
}
তাই আপনাকে যা করতে হবে তা হল!
স্টিরিবোর্ডের মাধ্যমে ভিসি কীভাবে এটি করবেন তা ভাবছেন তাদের জন্য (যারা "প্রোগ্রাম্যমেটিক্যালি" + "আনওয়াইন্ড সেগু" অনুসন্ধান থেকে এই প্রশ্নে আসছেন)।
প্রদত্ত যে আপনি ক্রমবর্ধমানভাবে সেলোগুলি সেটআপ করতে পারবেন না, সবচেয়ে সহজ একমাত্র প্রোগ্রাম্যাটিক সমাধান হ'ল:
navigationController?.popToRootViewController(animated: true)
যা স্ট্যাকের সমস্ত ভিউ কন্ট্রোলারকে আপনার রুট ভিউ নিয়ন্ত্রকের কাছে ফিরিয়ে আনবে।
নেভিগেশন স্ট্যাক থেকে কেবল শীর্ষস্থানীয় দেখা নিয়ন্ত্রককে পপ করতে, ব্যবহার করুন:
navigationController?.popViewController(animated: true)
এফওয়াইআই: একটি ভিউ কন্ট্রোলারের মধ্যে থেকে ডাকা ম্যানুয়াল আনইন্ড উইন্ড সিকুইশন অ্যাকশন নিয়ে কাজ করার জন্য @ ভাদিমের জবাবের জন্য আপনাকে কমান্ডটি লিখতে হবে:
[self performSegueWithIdentifier:(NSString*) identifier sender:(id) sender];
ওভাররডেন শ্রেণীর পদ্ধতির অভ্যন্তরে ভিডড অ্যাপটি এর মতো:
-(void) viewDidAppear:(BOOL) animated
{
[super viewDidAppear: animated];
[self performSegueWithIdentifier:@"SomeSegueIdentifier" sender:self];
}
যদি আপনি এটিকে অন্যান্য ভিউকন্ট্রোলার পদ্ধতিগুলিতে ভিউডিডলড বা ভিউউইল অ্যাপ্লায় রাখেন তবে এটিকে অগ্রাহ্য করা হবে।
performSegueWithIdentfier
হুবহু এটি করে: এক