আপনার প্রতিনিধি প্রোটোকল ব্যবহার করা দরকার ... এটি কীভাবে করবেন তা এখানে:
আপনার দ্বিতীয় ভিউকন্ট্রোলারের হেডার ফাইলে একটি প্রোটোকল ঘোষণা করুন। এটিকে ঐটির মত দেখতে হবে:
#import <UIKit/UIKit.h>
@protocol SecondDelegate <NSObject>
-(void)secondViewControllerDismissed:(NSString *)stringForFirst
@end
@interface SecondViewController : UIViewController
{
id myDelegate;
}
@property (nonatomic, assign) id<SecondDelegate> myDelegate;
আপনার বাস্তবায়নের (সেকেন্ডভিউকন্ট্রোল.আর) ফাইলটিতে মাইডিলেগেট সংশ্লেষ করতে ভুলবেন না:
@synthesize myDelegate;
আপনার ফার্স্টভিউকন্ট্রোলারের শিরোনাম ফাইলটিতে এটি করে সেকেন্ডডেলিগেট প্রোটোকলে সাবস্ক্রাইব করুন:
#import "SecondViewController.h"
@interface FirstViewController:UIViewController <SecondDelegate>
এখন আপনি যখন ফার্স্টভিউ কনট্রোলার-এ সেকেন্ডভিউ কনট্রোলার ইনস্ট্যান্ট করেন আপনার নিম্নলিখিতগুলি করা উচিত:
SecondViewController *second = [[SecondViewController alloc] initWithNibName:"SecondViewController" bundle:[NSBundle mainBundle]];
SecondViewController *second = [SecondViewController new];
second.myString = @"This text is passed from firstViewController!";
second.myDelegate = self;
second.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:second animated:YES];
[second release];
শেষ অবধি, আপনার প্রথম দর্শন নিয়ন্ত্রকের (ফার্স্টভিউ কনট্রোলারআরএম) জন্য বাস্তবায়নের ফাইলে সেকেন্ডভিউ নিয়ন্ত্রণকারীের জন্য সেকেন্ডডেলিগেটের পদ্ধতিটি বাস্তবায়ন করুন:
- (void)secondViewControllerDismissed:(NSString *)stringForFirst
{
NSString *thisIsTheDesiredString = stringForFirst;
}
এখন আপনি যখন দ্বিতীয় দর্শন নিয়ামককে বরখাস্ত করতে চলেছেন আপনি প্রথম দর্শনের নিয়ামকটিতে প্রয়োগ করা পদ্ধতিটি চালু করতে চান। এই অংশটি সহজ। আপনি যা করেন তা হ'ল আপনার দ্বিতীয় দর্শন নিয়ামকটিতে বরখাস্ত কোডের আগে কিছু কোড যুক্ত করুন:
if([self.myDelegate respondsToSelector:@selector(secondViewControllerDismissed:)])
{
[self.myDelegate secondViewControllerDismissed:@"THIS IS THE STRING TO SEND!!!"];
}
[self dismissModalViewControllerAnimated:YES];
ডেলিগেট প্রোটোকলগুলি অত্যন্ত, অত্যন্ত, অত্যন্ত কার্যকর, তাদের সাথে নিজেকে পরিচয় করা আপনার পক্ষে ভাল হবে :)
এনএসএনটিফিকেশনগুলি এটি করার আরেকটি উপায়, তবে সেরা অনুশীলন হিসাবে, আমি যখন একাধিক ভিউকন্ট্রোলার বা অবজেক্টের মধ্যে যোগাযোগ করতে চাই তখন আমি এটি ব্যবহার করতে পছন্দ করি। আপনি এনএসএনটিফিকেশন ব্যবহার সম্পর্কে আগ্রহী হলে আমি আগে পোস্ট করা একটি উত্তর এখানে: অ্যাপিডেলিগেটের থ্রেড থেকে একাধিক ভিউ কন্ট্রোলারকে জুড়ে ফায়ারিং ইভেন্টগুলি
সম্পাদনা:
আপনি যদি একাধিক যুক্তি পাস করতে চান তবে বরখাস্তের আগে কোডটি এরকম দেখাচ্ছে:
if([self.myDelegate respondsToSelector:@selector(secondViewControllerDismissed:argument2:argument3:)])
{
[self.myDelegate secondViewControllerDismissed:@"THIS IS THE STRING TO SEND!!!" argument2:someObject argument3:anotherObject];
}
[self dismissModalViewControllerAnimated:YES];
এর অর্থ হ'ল আপনার প্রথম ভিউকন্ট্রোলারের অভ্যন্তরে আপনার সেকেন্ডডেলিগেট পদ্ধতি বাস্তবায়ন এখন দেখতে দেখতে পাবেন:
- (void) secondViewControllerDismissed:(NSString*)stringForFirst argument2:(NSObject*)inObject1 argument3:(NSObject*)inObject2
{
NSString thisIsTheDesiredString = stringForFirst;
NSObject desiredObject1 = inObject1;
}