iphone开发:从不同的ViewController访问对象
在我的应用程序中,我有一个问题,听起来很简单,但我无法解决它。嗯,情况是这样的 我有两个视图控制器。VC1和VC2。在VC1中,我有一个按钮和一个imageView。按下该按钮时,imageView将随着动画从左向右移动,VC2将由pushtoViewController打开。在VC2中还有一个按钮,它是一个后退按钮,当按下它时,它应该打开第一个VC1,图像应该从右向左移动iphone开发:从不同的ViewController访问对象,iphone,objective-c,ios,imageview,viewcontroller,Iphone,Objective C,Ios,Imageview,Viewcontroller,在我的应用程序中,我有一个问题,听起来很简单,但我无法解决它。嗯,情况是这样的 我有两个视图控制器。VC1和VC2。在VC1中,我有一个按钮和一个imageView。按下该按钮时,imageView将随着动画从左向右移动,VC2将由pushtoViewController打开。在VC2中还有一个按钮,它是一个后退按钮,当按下它时,它应该打开第一个VC1,图像应该从右向左移动 我可以使用PopViewController打开VC1,但是我无法从VC2控制imageview,因此我可以从右向左设置动
我可以使用PopViewController打开VC1,但是我无法从VC2控制imageview,因此我可以从右向左设置动画。如何从VC2访问VC1的图像视图?这是如何在VC1中调用VC2:
VC2 *vc2 = [[VC2 alloc] initWithNibName:@"VC2" bundle:nil ];
vc2.delegate = self; // here you set the delegate for the coming back call
[self presentModalViewController: vc2 animated: YES]; // or however you present your VC2
这就是你如何从vc2回到vc1,你呼叫:
[self.delegate vc2HasFinished];
要使其工作,您需要创建如下协议:
在VC2Protocol.h
@protocol VC2Protocol <NSObject>
-(void)vc2HasFinished;
@end
这是苹果公司推荐的最干净的方法——看起来很笨重——我同意——但它可以工作,而且你会习惯的:-)这就是如何在VC1中调用你的VC2:
VC2 *vc2 = [[VC2 alloc] initWithNibName:@"VC2" bundle:nil ];
vc2.delegate = self; // here you set the delegate for the coming back call
[self presentModalViewController: vc2 animated: YES]; // or however you present your VC2
这就是你如何从vc2回到vc1,你呼叫:
[self.delegate vc2HasFinished];
要使其工作,您需要创建如下协议:
在VC2Protocol.h
@protocol VC2Protocol <NSObject>
-(void)vc2HasFinished;
@end
这是苹果公司推荐的最干净的方法——它看起来很麻烦——我同意——但它可以工作,而且你会习惯的:-)第一个答案非常正确,但我有另一个解决方案 您可以使用以下内容覆盖VC1的
视图显示:
消息:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
if (imageView.frame.origin.x > 0.0) {
// make your animation here
}
}
第一个答案很正确,但我有另一个解决办法 您可以使用以下内容覆盖VC1的
视图显示:
消息:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
if (imageView.frame.origin.x > 0.0) {
// make your animation here
}
}
您可以向VC2添加一个委托方法,在弹出VC2时调用该方法。使VC1成为VC2的代理并将动画写入此代理方法应该可以工作。您可以向VC2添加一个代理方法,在弹出VC2时调用该方法。使VC1成为VC2的代理并将动画写入此代理方法应该可以工作。DismissViewControllerAnimated:建议使用完成方式。DismissModelViewControlleranimated已被弃用。谢谢-当然你是对的-我修改了答案以反映新的方式…DismissViewControllerAnimated:建议使用完成方式。DismissModelViewControlleranimated已被弃用。谢谢-当然你是对的-我修改了答案以反映新的方式。。。