在iOS中推送控制器时如何访问Last view controller的变量?

时间:2013-02-27 10:07:32

标签: ios objective-c push

我在我的应用程序中遇到问题,下面解释了问题,

#import <UIKit/UIKit.h>
@interface CLASS_A : UIViewController {
    UIButton *Btn_Push;    
    UILabel *lbl_no;
}
- (IBAction)Btn_PushPressed:(id)sender;
 @property (nonatomic, retain)  UILabel *lbl_no;
@end

#import "CLASS_A.h"
@implementation CLASS_A
@synthesize pdfFilePath;

- (IBAction)Btn_PushPressed:(id)sender
{
    CLASS_B  *obj_CLASS_B= [[CLASS_B alloc] initWithNibName:@"RTC_HomeVC" bundle:nil];
    [self.navigationController pushViewController:obj_CLASS_B animated:TRUE];
}
 @end

#import <UIKit/UIKit.h>
@interface CLASS_B : UIViewController {
    UIButton *Btn_Pop;
}
- (IBAction)Btn_PopPressed:(id)sender;
@end

#import "CLASS_B.h"
@implementation CLASS_B
- (void)viewDidLoad
{
}
- (IBAction)Btn_PopPressed:(id)sender
{

    [self.navigationController popToRootViewControllerAnimated:YES];
}
@end

这是我的两个班级。 单击Btn_Push CLASS_A按CLASS_B。 然后单击CLASS_B CLASS_B的Btn_Pop弹出CLASS_A。

现在,每当我按下并弹出lbl_no时,会增加1。

示例:

  • CLASS_A推CLASS_B lbl_no.text = @“0”;

  • CLASS_B pop CLASS_A lbl_no.text = @“1”;

  • CLASS_A推CLASS_B lbl_no.text = @“1”;

  • CLASS_B pop CLASS_A lbl_no.text = @“2”;

  • CLASS_A推CLASS_B lbl_no.text = @“2”;

  • CLASS_B pop CLASS_A lbl_no.text = @“3”;

  • CLASS_A推CLASS_B lbl_no.text = @“3”;

  • CLASS_B pop CLASS_A lbl_no.text = @“4”;

所以我的问题是

1.i不想在CLASS_A中执行任何计算操作。您可以在CLASS_B中执行任何计算操作,这是必须的。也不想使用AppDelegate类,Singletone类,NSNotification和NSUserDefaults。并且想要更改lbl_no的文本,如上所述。

那我怎么能这样做?任何人都可以提供帮助。

感谢。

1 个答案:

答案 0 :(得分:2)

尝试类似的东西:

A类

// CLASS_A.h
#import <UIKit/UIKit.h>
@interface CLASS_A : UIViewController {
    UIButton *Btn_Push;    
    UILabel *lbl_no;
}
- (IBAction)Btn_PushPressed:(id)sender;
@property (nonatomic, retain)  UILabel *lbl_no;
@end

// CLASS_A.m
#import "CLASS_A.h"
#import "CLASS_B.h"
@implementation CLASS_A
@synthesize pdfFilePath;

- (IBAction)Btn_PushPressed:(id)sender
{
    CLASS_B  *obj_CLASS_B= [[CLASS_B alloc] initWithNibName:@"RTC_HomeVC" bundle:nil];
    obj_CLASS_B.delegate = self;
    [self.navigationController pushViewController:obj_CLASS_B animated:TRUE];
}
@end

B类

// CLASS_B.h
#import <UIKit/UIKit.h>
@class CLASS_A;
@interface CLASS_B : UIViewController {
    UIButton *Btn_Pop;
}
@property (weak, nonatomic) CLASS_A *delegate;
- (IBAction)Btn_PopPressed:(id)sender;
@end

// CLASS_B.m
#import "CLASS_B.h"
#import "CLASS_A.h"
@implementation CLASS_B
- (void)viewDidLoad
{
}
- (IBAction)Btn_PopPressed:(id)sender
{
    self.delegate.lbl_no.text = [NSString stringWithFormat:@"%d", ([self.delegate.lbl_no.text integerValue] + 1)];
    [self.navigationController popToRootViewControllerAnimated:YES];
}
@end