我正在研究这个项目,我有一个用户类,我的主视图控制器和我的SetUp控制查看器(第二个控制查看器)。 User类具有所有的User属性,主视图控制器创建用户名/密码,然后调用SetUp视图控制器,SetUp视图控制器允许用户输入其他信息。我在SetUp视图控制器中创建了一个协议,在用户在第二个视图控制器中输入附加信息后,在我的主视图控制器中调用委托方法。委托方法返回一个用户对象,但这是我迷路的地方。 User对象在哪里被返回?它绝对不会去我想要的地方。如何使用委托和协议返回对象
/**Main View Controller Implementation**/
#import "BWViewController.h"
#import "User.h"
@interface BWViewController()
@end
@implementation BWViewController
@synthesize holdPassword,holdUserName,holdZone,holdArea;
-(IBAction)signUpButton
{
firstUser = [[User alloc] init];
firstUser.userName = userNameField.text;
firstUser.password = passwordField.text;
SetUp *setUpView = [[SetUp alloc] initWithNibName:Nil bundle:Nil];
setUpView.delegate = self;
User * bufferUser;
bufferUser = [self presentViewController:setUpView animated:YES completion:^{ }]; /**This is where I want the User object from the delegate method return to**/
}
/**Delegate method in Main view controller**/
-(User*) sendUserInfoBack: (SetUp *) SetUpController didFinishWithZoneInfo:(NSString*)zoneInfo didFinishWithAreaInfo:(NSString*) areaInfo
{
User*holdUser;
holdZone = zoneInfo;
holdArea = areaInfo;
holdUser.userZone = holdZone;
holdUser.userArea = holdArea;
return holdUser; /**return this to bufferUser object in method above**/
}
/**Second View controller Interface**/
#Import "User.h"
@class SetUp;
@protocol SetUpControllerDelegate <NSObject>
-(User*) sendUserInfoBack: (SetUp *) SetUpController didFinishWithZoneInfo:(NSString*)zoneInfo didFinishWithAreaInfo:(NSString*) areaInfo;
@property (weak,nonatomic) id<SetUpControllerDelegate>delegate;
@end
/**Second View controller implementation**/
-(IBAction)goToMainView:(id)sender
{
NSString * neededZoneStore = Zone.text;
NSString * areaStore = Area.text;
User * user = [[User alloc] init];
user.userZone = neededZoneStore;
user.userArea = neededAreaStore;
[self.delegate sendUserInfoBack:self didFinishWithZoneInfo:neededZoneStore didFinishWithAreaInfo:neededAreaStore];
[self dismissViewControllerAnimated:YES completion:NULL];
}
你能否尽可能简单地澄清你想要做的事情? – nhgrif
'@protocol SetUpControllerDelegate' 当然。我试图返回一个用户对象与设置视图控制器中获得的变量到我的主视图控制器中的bufferUser对象。 –
Brosef