我想访问另一个视图的视图按钮的标记值,但它总是显示为零。
我声明一个整数变量:NSInteger标签;在songView.h的接口部分并设置其@property(非原子)NSInteger标签; 在songView.m中将其合成为@synthesize标签; 现在我为它分配按钮的标签值,如下所示:
-(IBAction)track1ButtonPressed:(id) sender
{
self.tag = [sender tag];
}
现在我想在另一个视图中访问这个(标签)值,即audioView,我在audioView.m中这样编码:
songView *songview=[songView alloc];
if (songview.tag==1)
{}
else{}
通过运行此代码,其他部分仍然执行,因为songview.tag的值为0(ZERO), 我还在IB中将按钮的标记值设置为1。
答案 0 :(得分:1)
首先,您不仅要分配对象,还要初始化它。所以替换
songView *songview=[songView alloc];
与
CGRect songFrame = CGRectMake(0.f, 0.f, 120.f, 120.f);
songView *songview=[[songView alloc] initWithFrame:songFrame];
initWithFrame
是UIView
的指定初始化程序,我想你的songView类是UIView
的子类。
然后我不确定assign
是@property
的默认修饰符,以确保将您的标记属性定义为
@property(nonatomic, assign) NSInteger tag;
然后它应该工作。如果没有,请在track1ButtonPressed:(id) sender
方法中设置一个断点,看它是否被调用,并使用调试器手动检查sender
对象。
答案 1 :(得分:0)
尝试使用tag..ex之外的其他名称声明整数变量:NSInteger btnTag; 因为通常对于任何视图标签都是零