Bry*_*n C 3 iphone scope objective-c uiviewcontroller
有谁知道如何从子视图(子)视图控制器更新属性值?我有一个名为statusid的int属性,在父视图控制器中使用gettor/settor定义.[self.view addSubview:detailsVC.view];
在子子视图中,我尝试调用[super statusid:updatedValue]; 将statusid更新为新值,但这会产生错误.如何更新父级中的statusid?有人知道怎么做吗?
使用"super"访问您的基类,即当前类继承的基类
要做你所解释的,你需要访问父视图的属性,这是相当复杂的,因为这很可能会因两个类试图互相引用而结束.因此,你很可能必须创建一个委托模式,看起来有点像这样
ParentView.h
@protocol IAmYourFatherAndMotherProtocol
@class ChildView;
@interface ParentView : UIViewController <IAmYourFatherAndMotherProtocol>
{
NSInteger statusID;
}
@property (nonatomic) NSInteger statusID;
@protocol IAmYourFatherAndMotherProtocol
@property (nonatomic) NSInteger statusID;
@end
@end
Run Code Online (Sandbox Code Playgroud)
在ChildView.h中
#import "ParentView.h"
@interface ChildView : UIViewController
{
id<IAmYourFatherAndMotherProtocol> delegate;
}
@property (nonatomic, assign) id <IAmYourFatherAndMotherProtocol> delegate;
Run Code Online (Sandbox Code Playgroud)
在ParentView.m中创建ChildView时,您必须将"self"设置为委托,例如:
ChildView *newChild = [[ChildView alloc] init];
newChild.delegate = self;
Run Code Online (Sandbox Code Playgroud)
通过这样做,您可以在ChildView.m中访问ParentView的"statusID",如下所示:
delegate.statusID = 1337;
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
5841 次 |
| 最近记录: |