29,047
社区成员




- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
id page2=segue.destinationViewController;
[page2 setValue:self.listData forKey:@"listData"];
}
@protocol SysSelDelegate
-(void)sysInfoList:(NSMutableArray *)values;//1.1定义协议与方法
@end
@interface ViewController : UIViewController
@property (retain,nonatomic) id <SysSelDelegate> trendDelegate;
@property NSMutableArray *listData;
@end
SysSelViewController *sysSelViewController = [[SysSelViewController alloc] initWithNibName:@"SysSelViewController" bundle:nil];
self.trendDelegate=sysSelViewController; //设置代理
[self.trendDelegate sysInfoList: listData];
-(void)sysInfoList:(NSMutableArray *)values{
listData=values;
}
SysNavController *aaa=[[SysNavController alloc] init];
aaa.listData=listData;
[self.navigationController pushViewController:aaa animated:YES];
@protocol BDelegate:<NSObject>
-(void)b:(B *)b didSelectedValue:(NSString *)str;
@end
@interface B: UIViewController
@property(assign) id<BDelegate> delegate;
@end
@implementation B
//////选择动作
-(IBAction)chooseItem:(id)sender {
NSString *value = XXXx;//......得到选择的值
//////判断代理是否有订阅者
if ([self.delegate respondToSelector:@selector(b:didSelectedValue:)]) {
[self.delegate b:self didSelectedValue:value]; ////////将value值回传
}
}
@end
@interface A: UIViewController <BDelegate> ////////指明A需要实现B的协议
@end
@implementation A
#pragram mark B Delegate
-(void)b:(B *)b didSelectedValue:(NSString *)str {
//////////str 即为从B回传过来的值,在A中根据这个值做处理。
}
@end