【问题标题】:Accessing image view from a different View Controller从不同的视图控制器访问图像视图
【发布时间】:2013-08-28 19:28:35
【问题描述】:

我的故事板文件中有两个视图控制器类和两个视图。一个名为 ViewController,另一个名为 SettingsViewController,因为它是第一个视图的设置。我在设置视图上有一个 UISwitch,我希望它更改 ViewController 类中的图像视图。如何从我的设置类中访问它并更改图像视图的图像?我已经尝试过导入 ViewController 类并合成图像视图,但它说图像视图必须在 ViewController 类中声明。

【问题讨论】:

  • 你能在你试图实现它的地方显示代码吗?

标签: ios cocoa-touch uiimageview


【解决方案1】:

在您的 SettingsViewController 中:

.h file
@interface SettingsViewController : UIViewController {
    UIImageView *imageView;
}

@property (strong, nonatomic) UIImageView *imageView;

.m file
@implementation SettingsViewController {

@synthesize imageView;

现在在你的 ViewController 中,你需要实现 prepareForSegue 方法:

.m file

#import "SettingsViewController"

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqual:@"goToSettingsSegue"]) {
        SettingsViewController *dest = segue.destinationViewController;
        dest.imageView = self.imageView; //set the image in your view as the image in the settings view
    }
}

现在您应该可以在设置视图中访问它了。

【讨论】:

  • 现在它在 dest.imageView = self.imageView; 行上显示“在 'ViewController *' 类型的对象上找不到属性 'imageView'”。
  • 您是否在 ViewController 类中为您的 imageView 声明了一个出口? Ctrl + 将 UIImageView 从情节提要拖到 ViewController 类的头文件中,并将其命名为“imageView”。
  • 谢谢。但我想你可能误解了我的问题。我想要它,所以如果设置视图控制器中的开关打开,它会调用一个方法。
  • 我的评论是指您上面描述的错误,在您的 ViewController 上找不到 imageView 属性。除非您有从 UIImageView 到 ViewController 的出口,否则我在答案中发布的代码将不起作用。一旦你有了它,你可以使用我上面描述的过程将对你的 UIImageView 的引用传递给设置视图。在 SettingsViewController 中引用它后,您可以在按下开关时调用一个方法,并通过该方法更改图像。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-18
  • 2012-10-26
  • 1970-01-01
相关资源
最近更新 更多