我有一个VC(根),它调用Modal Segue到UINavigatioController(设置)。用户可以更改他们想要的内容。如何让第一个VC(根)知道更改已完成。 UINav的委托是(根)VC。有什么想法可以从模态搜索中传回数据吗?干杯
最佳答案
将您的AppDelegate用作子VC可以调用并将数据传递到的中央通信中心。请尝试以下操作:
首先在AppDelegate中设置一个共享的委托类方法,以及将数据传递给子VC的方法,如下所示:
// In MyAppDelegate.h
#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
@interface MyAppDelegate : NSObject {
// rootviewcontroller is the parent of your UINavigationController
UIViewController *rootViewController;
}
+ (MyAppDelegate *)sharedAppDelegate;
-(void)passData:(NSString*)myString;
所以..
// In MyAppDelegate.m
#import "MyAppDelegate.h"
@implementation MyAppDelegate.m
+ (MyAppDelegate.m *)sharedAppDelegate
{
return (MyAppDelegate.m *) [UIApplication sharedApplication].delegate;
}
-(void)passData:(NSString*)myString{
// pass data to parent of UINavigationController
[rootViewController hereIsSomeData:myString];
}
然后从UINavigationController(VC.m)的.m文件中,导入AppDelegate类并实例化共享委托,这实际上使您可以“调用” AppDelegate并发送数据。
// In VC.m
#import "MyAppDelegate.h";
// ...
NSString *myString = @"alskdjfalsdjfq324r";
[[MyAppDelegate sharedAppDelegate] passData:myString];