我在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;

10-06 05:54