/ / टैब्बर रूटव्यू कंट्रोलर से कैसे कॉल करें विधि - ऑब्जेक्टिव-सी, एक्सकोड, कोको-टच

एक टैबबार रूटव्यू नियंत्रक से विधि कैसे कॉल करें - उद्देश्य-सी, एक्सकोड, कोको-स्पर्श

मेरे पास 3 टैब्बर आइटम हैं, प्रत्येक एक दृश्य नियंत्रक। पहला, दूसरा, और तीसरा दृश्य नियंत्रक। मुझे पहले व्यू कंट्रोलर की ज़रूरत है ताकि दूसरे व्यू कंट्रोलर व्यू पर टेबलव्यू को अपडेट करने वाले तरीके को कॉल किया जा सके। मुझे यकीन नहीं है कि इसे संभालने का सही तरीका क्या है। मैंने एक साझा प्रयास की कोशिश की, लेकिन मुझे लगता है कि ऐसा हो रहा है कि दो उदाहरण बनाए जा रहे हैं और यह देखने वाला नियंत्रक है कि पहला VM isn का उपयोग कर रहा है "t वही VM जो वास्तव में ऐप में उपयोग किया जा रहा है, जो यह बताता है कि मेरा टेबलव्यू isn क्यों है" t अद्यतन करना।

असल में जब मैं फर्स्ट व्यू में फाइल अपलोड करता हूंनियंत्रक, मुझे सारणी को अद्यतन करने और फ़ाइल के अपलोड प्रगति को दिखाने के लिए दूसरे वीएम की आवश्यकता है। आइट्यून्स पर खरीदा जाने वाला गीत पसंद आने पर कृपया इसे पसंद करें। ये टैब आइटम के लिए UINavigationViewControllers हैं।

मैंने कोशिश की:

+ (SecondViewController *)sharedInstance {
// Singleton implementation
static SecondViewController* instance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[SecondViewController alloc] init];
});

return instance;
}

- (void)viewDidLoad
{
[super viewDidLoad];
UploadTableView.dataSource = self;
UploadTableView.delegate = self;

[S3UploadClientManager tm].delegate = self;

}

उत्तर:

उत्तर № 1 के लिए 1

आप नहीं चाहते कि नियंत्रक सीधे एक दूसरे के साथ संवाद करें। यदि आप किसी अन्य दृश्य के लिए बहस कर रहे हैं जो आप उपयोग कर सकते हैं prepareForSegue। यदि आप ऐसा नहीं करना चाहते हैं कि मैं आपको सुझाव देना चाहता हूं कि आप या तो एक फाइल अपडेट करें या एक डेटाबेस जिसे दोनों नियंत्रकों को सीधे संपर्क से बचने और mvc आर्किटेक्चर को रखने के लिए एक्सेस करना है।


जवाब के लिए 0 № 2

आप tabBarController प्रतिनिधि विधि को लागू कर सकते हैं:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
if([viewController isMemberOfClass[SecondViewController class]]) {
//pass the data here
}
}