我在OneViewController.h中声明了方法“ someMethod”
@interface OneViewController
{
UIView *tempView;
..
}
-(void) someMethod ;
@end
并在OneViewController.m文件中实现
@implementation OneViewController
-(void) someMethod
{
tempView = [[UIView alloc]initWithFrame:CGRectMake(100, 50, 200, 250)];
tempView.backgroundColor = [UIColor yellowColor];
if([[self.view subviews] containsObject:tempView])
[tempView removeFromSuperView];
else
[self.view addsubview:tempView];
}
我想在其他viewController出现时调用someMethod-secondViewController
(类似于
[OneViewController someMethod]
),因此当我回到OneViewController时,可以看到someMethod所做的更改。我需要使用appDelegate方法吗?
我尝试了以下操作,但不起作用。
neViewController *newViewController = [[OneViewController alloc] init];
[newViewController someMethod];
感谢您的任何提前帮助。
最佳答案
在SecondViewController中,声明对OneViewController类的引用。您可以分配属性。设置引用,然后再移至SecondViewController。现在有了引用,您可以调用实例方法[_oneView someMethod]
。
编辑:
宣布
OneViewController *_oneView;
同时添加assign属性
@property(nonatomic,assign) OneViewController *_oneView;
合成.m文件中的变量。
从OneViewController显示SecondViewController时,只需添加以下行。
secondView._oneView = self;