在iOS中推送控制器时,如何访问最后一个视图控制器的变量?

在iOS中推送控制器时,如何访问最后一个视图控制器的变量?,ios,objective-c,push,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

我在我的应用程序中遇到问题问题如下所述

#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
#导入
@接口类_A:UIViewController{
UIButton*Btn_按钮;
UILabel*lbl\U编号;
}
-(iAction)Btn_按钮按下:(id)发送方;
@属性(非原子,保留)UILabel*lbl\U编号;
@结束
#导入“A.h类”
@实现类_A
@合成pdfFilePath;
-(iAction)Btn_按钮按下:(id)发送方
{
CLASS_B*obj_CLASS_B=[[CLASS_B alloc]initWithNibName:@“RTC_HomeVC”bundle:nil];
[self.navigationController pushViewController:obj_CLASS_B动画:TRUE];
}
@结束

#导入
@接口类_B:UIViewController{
UIButton*Btn_弹出;
}
-(iAction)Btn_弹出:(id)发送方;
@结束
#导入“B.h类”
@实现类_B
-(无效)viewDidLoad
{
}
-(iAction)Btn_弹出:(id)发送方
{
[self.navigationController-popToRootViewControllerAnimated:是];
}
@结束
这是我的两门课。 点击Btn_推送类A推送类B。 点击B类流行音乐A类的Btn流行音乐

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

例如:

  • 类别A推送类别B lbl编号text=@“0”

  • B类pop A类lbl编号text=@“1”

  • 类别A推送类别B lbl编号text=@“1”

  • B类pop A类lbl编号text=@“2”

  • 类别A推送类别B lbl编号text=@“2”

  • B类pop A类lbl编号text=@“3”

  • 类别A推送类别B lbl编号text=@“3”

  • B类pop A类lbl编号text=@“4”

所以我的问题是

1.我不想在A班做任何计算操作。你可以在B班做任何计算操作,这是必须的。也不想使用AppDelegate类、Singletone类、NSNotification和NSUserDefaults。并希望更改lbl_no的文本,如上所述

那我该怎么做呢?任何人都可以帮忙


谢谢。

试试这样:

甲级

// 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
//类A.h
#进口
@接口类_A:UIViewController{
UIButton*Btn_按钮;
UILabel*lbl\U编号;
}
-(iAction)Btn_按钮按下:(id)发送方;
@属性(非原子,保留)UILabel*lbl\U编号;
@结束
//上午九时三十分
#导入“A.h类”
#导入“B.h类”
@实现类_A
@合成pdfFilePath;
-(iAction)Btn_按钮按下:(id)发送方
{
CLASS_B*obj_CLASS_B=[[CLASS_B alloc]initWithNibName:@“RTC_HomeVC”bundle:nil];
obj_CLASS_B.代表=自身;
[self.navigationController pushViewController:obj_CLASS_B动画:TRUE];
}
@结束
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
//CLASS_B.h
#进口
@A类;
@接口类_B:UIViewController{
UIButton*Btn_弹出;
}
@属性(弱、非原子)类_A*委托;
-(iAction)Btn_弹出:(id)发送方;
@结束
//B.m级
#导入“B.h类”
#导入“A.h类”
@实现类_B
-(无效)viewDidLoad
{
}
-(iAction)Btn_弹出:(id)发送方
{
self.delegate.lbl_no.text=[NSString stringWithFormat:@“%d”,([self.delegate.lbl_no.text integerValue]+1)];
[self.navigationController-popToRootViewControllerAnimated:是];
}
@结束

对于推送,我在类A中导入类B,根据您的建议,我需要在类B中导入类A,也需要在类A中导入类B。因此,它给出了一个交叉引用错误。因此,您可以为这种方法提出任何其他解决方案。它给出了一个错误“在类A的对象上找不到属性lbl\U no”。它给出了一个错误“在类A的对象上找不到属性lbl\U no”。声明lbl\U的属性后,没有错误得到解决,但经过10次推送和弹出操作后,lbl\U no始终保持为1。我很惊讶这是怎么发生的你能解决吗??请解决它,然后我会接受你的答复。再次感谢你。不要在.h文件中导入CLASS_A.h和CLASS_B.h,请在.m文件中导入,就像我在编辑代码中所做的那样。嗨,如果你反对投票,请详细说明你反对投票的原因。
// 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