所以基本上在我的ClassA.h上我创建了一个名为selected的NSNumber。它也用在@property中.h。现在在ClassA.m中我有一个表视图,当选择一个时,它会进入另一个屏幕。我希望indexPath.row保存到该NSNumber中。 (在.m中选择了@synthesized)
在ClassA.m中调用它的位置在didSelectRowAtIndexPath中,看起来像这样。
selected = [NSNumber numberWithInt:indexPath.row];
在下一个视图中,我想回忆一下这段代码,以便它可以根据选择通过代码加载一个特定的视图。我导入ClassA.h,这是我为ClassB.m
添加的代码HowTosViewController *h = [[HowTosViewController alloc] init];
if([h.selected intValue] == 0){
content.text = @"0";
}
else if ([h.selected intValue] == 1){
content.text = @"1";
}
我假设我的问题是我没有正确存储或者没有正确调用它。我宁愿使用全局变量来做这个,所以如果有一个更简单的方法来使用它们我不介意。我感谢任何帮助。
另外作为旁注。当我去发布时,如果我在ClassB中做了它会导致任何问题或者是否正确?在使用该号码加载屏幕后,不再需要它,如果该人返回并选择另一个选项,则应分配另一个。
谢谢:)
编辑:忘了提及它目前正在做什么。目前,当单击ClassA中的任何单元格时,它将打开屏幕并显示0.
答案 0 :(得分:1)
selected = [[NSNumber numberWithInt:indexPath.row] retain];
或selected
有保留属性...然后你做
self.selected = [NSNumber numberWithInt:indexPath.row];
答案 1 :(得分:0)
在ClassB.m
中执行此操作时HowTosViewController *h = [[HowTosViewController alloc] init];
这是一个新实例,与存储所选值的实例不同。
考虑使用选定的值初始化你的ClassB,并在classB中使用它,如做
- (id) initWithSelectedIndex: (NSNumber *) selectedIndex {
if(self = [super init]) {
receivedSelectedIndex = selectedIndex;
}
return self;
}
delcare这个收到的选择指数就像
NSNumber *receivedSelectedIndex;
@implementation classB
你在哪里创建ClassB的实例,你应该这样做
classB *b = [[classB alloc] initWithSelecedIndex:selected]; //using your selected NSNumber