该程序基本上是这样的:

==================================

有一个UIViewController,它具有NSInteger的实例变量:

我在UIViewController .h文件中将其声明为:

NSInterger *theNum;
...
@property NSInteger *theNum;


然后,我将其合成为.m文件:

@synthesize theNum;


此UIViewController的视图(UIView)具有doSomething方法:需要访问Num的值。

这是此“视图” .m文件中的代码:

-(void)doSomething {

NSInteger *myNum = self.superview.theNum; //error: request for member 'theNum' in something not a structure or union

// do something

}


=============================

那么如何从UIViewController到UIView获取theNum的值呢?

感谢高级!并祝大家圣诞快乐。

最佳答案

您需要将数字从UIViewController传递到UIView。控制器应该了解视图,而不是相反。

//SomeView.h
@interface SomeView : UIView
NSInteger theNum;
//You have NSInteger *theNum. I am guessing you made that a pointer by accident
}

@property(assign) NSInteger theNum;

@end

//SomeViewController.m

-(void)viewDidLoad
{
   [super viewDidLoad];
   ((SomeView*)self.view).theNum = theNum;//This theNum belongs to the ViewController
}

关于iphone - UIView如何访问UIViewController的属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4512894/

10-11 16:31