我是IOS编程的新手。我正在从segue向另一个视图控制器发送一个整数值,如下所示:
SlideShowViewController *destViewController = segue.destinationViewController;
[destViewController setSelectedButton:tagIndex];
我在SlideShowViewController.m文件中成功访问了这个值:
@synthesize selectedButton;
NSLog(@"%i",selectedButton);
现在我想访问在我的其他View Controller中保存在selectedButton中的相同值。所以我在AnotherViewController的viewDidLoad中做了这个:
SlideShowViewController *button= [[SlideShowViewController alloc] init];
NSLog(@"selected button is %i",button.selectedButton);
但我没有在这里获得价值。
答案 0 :(得分:0)
在上一个代码部分中,您正在创建SlideShowViewController
的新实例。此实例与第一个实例的变量不同。要访问selectedButton
字段,您需要引用第一个SlideShowViewController
实例来访问其属性。
// Here you create a new instance. You need to hang onto the destViewController
// pointer if you want to access its selectedButton property later. This means
// you'll need to use a global variable, or otherwise expose it in some way for
// future reference.
SlideShowViewController *destViewController = segue.destinationViewController;
[destViewController setSelectedButton:tagIndex];
稍后,可能采用不同的方法,您可以执行以下操作:
// Note, we're referring to destViewController using self. I'm assuming you've
// set up a property on the self object to refer to destViewController outside
// of the scope of the initial initialization.
int selectedButtonIndex = self.destViewController.selectedButton;
答案 1 :(得分:0)
进入第二个视图控制器时,与第一个视图控制器相同。
SecondViewController *destViewController2 = segue.destinationViewController;
[destViewController2 setSelectedButton:tagIndex];
答案 2 :(得分:0)
在SlideShowViewController.h中创建一个属性来保存数据。 在SlideShowViewController.m中合成属性并删除
SlideShowViewController *button= [[SlideShowViewController alloc] init];
来自SlideShowViewController.m的这一行。在这一行中,您正在创建SlideShowViewController的新实例。