Просто используйте delegate
. Перед тем как нажать экземпляр «UploadViewController», вам нужно установить его delegate
как self
(в GoogleDocMainPageController.m). Каждый раз, когда ячейка таблицы выбирается, она устанавливает значение для self.delegate
(это экземпляр GoogleDocMainPageController), отправляя метод self.delegate
, который реализуется GoogleDocMainPageController:
[self.delegate setDataAfterSelectedTabelCell:[NSString stringWithFormat:@"TalbeCell %d selected", [indexPath row]]];
Основной код показан ниже:
UploadViewController.h:
#import <UIKit/UIKit.h>
@class UploadViewController;
@protocol UploadViewControllerDelegate <NSObject>
- (void)setDataAfterSelectedTabelCell:(NSString *)stringValueInCell;
@end
@interface UploadViewController : UITableViewController
@property (nonatomic, retain) id <UploadViewControllerDelegate> delegate;
@end
UploadViewController.m:
//...
@synthesize delegate = _delegate;
//...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.delegate setDataAfterSelectedTabelCell:[NSString stringWithFormat:@"TalbeCell %d selected", [indexPath row]]];
}
GoogleDocMainPageController.h:
#import <UIKit/UIKit.h>
#import "UploadViewController.h"
@class UploadViewController;
@interface GoogleDocMainPageController : UIViewController <UploadViewControllerDelegate>
- (void)loadUploadViewController;
@property (nonatomic, retain) UILabel * glLabel;
@property (nonatomic, retain) UploadViewController * uploadViewController;
@end
GoogleDocMainPageController.m:
//...
@synthesize glLabel = _glLabel;
@synthesize uploadViewController = _uploadViewController;
//...
- (void)viewDidLoad
{
[super viewDidLoad];
UIButton * uploadButton = [[UIButton alloc] initWithFrame:CGRectMake(10.0f, 160.0f, 300.0f, 35.0f)];
[uploadButton setBackgroundColor:[UIColor blackColor]];
[uploadButton setTitle:@"Upload Button" forState:UIControlStateNormal];
[uploadButton addTarget:self action:@selector(loadUploadViewController) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:uploadButton];
[uploadButton release];
self.glLabel = [[UILabel alloc] initWithFrame:CGRectMake(10.0f, 200.0f, 300.0f, 35.0f)];
[self.glLabel setBackgroundColor:[UIColor blackColor]];
[self.glLabel setTextColor:[UIColor whiteColor]];
[self.glLabel setTextAlignment:UITextAlignmentCenter];
[self.glLabel setText:@"Default"];
[self.view addSubview:self.glLabel];
self.uploadViewController = [[UploadViewController alloc] initWithStyle:UITableViewStylePlain];
}
//...
#pragma mark -
- (void)loadUploadViewController
{
[self.uploadViewController setDelegate:self];
[self.navigationController pushViewController:self.uploadViewController animated:YES];
}
#pragma mark - UploadViewControllerDelegate
- (void)setDataAfterSelectedTabelCell:(NSString *)stringValueInCell
{
[self.glLabel setText:stringValueInCell];
}