我现在有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