我是iPhone开发的新手。
我有一个带有2个类的iphone应用程序..(即mainView,subView)
在mainView中,我有一个名为currentId的全局变量
我将currentId的值设置为5。
现在我需要知道的是如何将currentId访问到subView类中。
请帮助指导我......
答案 0 :(得分:1)
@barbgal ....你可以在子视图中访问你的变量currentid .......你在子视图类中的mainView的制作对象
假设您的currentid变量的类型为NSInteger ...
mainView.h
NSInteger currentID;
@property(nonatomic,assign) NSInteger currentID;
mainView.m
@synthesize currentID;
currentID = 5;
//as you want to assign 5 to it
现在在你的subView类中创建了mainView类的对象
例如: - mainView *mainView = [[mainView alloc]initWithNibName:@"mainView"bundle:nil];
现在将它分配给你的subView类中的任何位置mainView.currentid
......在subView类中做你想做的事情
答案 1 :(得分:1)
好的我认为这里的回答者的某些部分是正确的,但我们需要在这里添加更多内容..
所以我会一步一步走
1你肯定需要将currentID作为MainView中的属性,如其他回答者所述
2对于Sudhanshu的回答,如果是你的init和init主视图,新的viewcontroller将被初始化,因此它的currentID将任何值都任意值,所以这是不正确的。
3现在解决方案部分: - 有两种解决方案: -
(1)mainview* vc = (mainview*)self.parentViewController;
然后将currentID作为vc.currentId
别忘了在你的子视图中导入“mainview.h”
(2)使用appdelegate变量,即在你的appdelegate中声明currentID 并将其作为财产
然后在mainview中将currentID设置为: -
urAppDelegate delegate = (urAppDelegate )[[UIApplication的 sharedApplication]委托]; delegate.currentID = @ “5”;
并在子视图中访问
urAppDelegate delegate = (urAppDelegate )[[UIApplication的 sharedApplication]委托]; 的NSLog(@ “%@”,delegate.currentID);
别忘了在两个viewcontrollers中导入“urAppDelegate.h”
答案 2 :(得分:0)
要访问currentId,你需要使它成为一个属性,然后通过在subView类中创建mainView类的对象,你可以访问currentID。
在mainView.h中
NSInteger currentID;
@property(nonatomic,assign) NSInteger currentID;
在mainView.m中
@synthesize currentID;
并将其值设置在您想要的位置,并在subView中创建mainView类的对象并使用。操作员,您可以访问此属性。