我有一个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];

09-30 22:09