我現在有2個視圖控制器,它都有桌面視圖。 當我選擇一個行的第二個實現代碼如下(使用didSelectRowAtIndexPath方法),如何在2個視圖控制器之間傳遞變量
,我想通過我試圖用委託&協議我在第二視圖到了第一個視圖中的信息, ,但不要知道爲什麼,它沒有工作。
我嘗試在第一類中使用class方法,當我在第二個視圖中變量時,調用第一個類中的類方法。變量順利通過先查看,
但是當我想設置LABLE的文本,它還是沒有..
有人可以教教我該怎麼辦?謝謝!
我的協議&委託。
這是第二個視圖。
@protocol CategoriesViewControllerDelegate;
@interface CategoriesViewController : UIViewController {
TableViewNewAppDelegate *appDelegate;
id <CategoriesViewControllerDelegate> delegate;
}
@property (nonatomic, assign) id <CategoriesViewControllerDelegate> delegate;
@end
@protocol CategoriesViewControllerDelegate <NSObject>
-(void)backstring:(NSString *)String;
@end
在.m文件,合成它
@implementation CategoriesViewController
@synthesize delegate;
didSelectRowAtIndexPath方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
CategoryData *CateObj = [appDelegate.CateArray objectAtIndex:indexPath.row];
NSString *Strings = [NSString stringWithString:CateObj.CateTitle];
[delegate backstring:Strings];
[self.parentViewController dismissModalViewControllerAnimated:YES];
}
在第一視圖控制器h文件。
#import "CategoriesViewController.h"
@interface DataController : UIViewController <CategoriesViewControllerDelegate>{
.m文件
-(void)backstring:(NSString *)String {
NSLog(@"%@",String);
jCateField.text = String;
}
這是我做我的協議+委託。有什麼問題嗎?
btw,我在第一個視圖控制器中創建了一個Class方法,並在第二個視圖控制器中使用了Class方法,它成功地將變量傳遞給第一個視圖控制器。
但問題是,我無法在我的Class方法中設置Label的文本,甚至不需要調用Instance方法來設置文本。有什麼辦法可以解決這個問題嗎?
向我們展示您的__delegate&protocol__嘗試......它可能是正確的方式 – 2011-07-10 09:41:07
好的..請等我 – Johnny
您好,完成了!你現在可以看到它 – Johnny