Ios 从另一个类访问IBOutlet
嘿,我有两个Ios 从另一个类访问IBOutlet,ios,objective-c,xcode,uibutton,iboutlet,Ios,Objective C,Xcode,Uibutton,Iboutlet,嘿,我有两个uiviewcontroller。在第一个按钮中,有一个包含图像的ui按钮。当用户进入我的第二个ViewController时,有许多按钮,其中包含不同的图像。因此,当用户按下我的VC2中的一个按钮时,它应该将图像从自身设置为我的VC1上的UIButton 我已经通过添加以下内容实现了第一个VC: #在@interface ViewController2()之前将“ViewController1.h”导入到ViewController2.m 我该怎么做?例如: VC2: 谢谢 步骤1
uiviewcontroller
。在第一个按钮中,有一个包含图像的ui按钮。当用户进入我的第二个ViewController
时,有许多按钮,其中包含不同的图像。因此,当用户按下我的VC2中的一个按钮时,它应该将图像从自身设置为我的VC1上的UIButton
我已经通过添加以下内容实现了第一个VC:
#在@interface ViewController2()之前将“ViewController1.h”导入到ViewController2.m
我该怎么做?例如:
VC2:
谢谢 步骤1:在ViewController2.h中,在VC2上创建一个属性以引用VC1:
#import "ViewController1.h"
@property (nonatomic, strong) ViewController1 *viewController1;
步骤2:在VC1中创建VC2时,设置属性:
[viewController2 setViewController1:self];
步骤3:在ViewController2上设置按钮图像
[self.buttonVC2 setImage:[self.viewController1.buttonVC1 imageForState:UIControlStateNormal] forState:UIControlStateNormal];
注意:更好的模型是在VC1上提供一个返回正确图像的方法。例如,在VC1中:
- (UIImage *)imageForButton {
return [self.buttonVC1 imageForState:UIControlStateNormal];
}
在VC2中:
[self.buttonVC2 setImage[self.viewController1 imageForButton]];
步骤1:在ViewController2.h中,在VC2上创建一个属性以引用VC1:
#import "ViewController1.h"
@property (nonatomic, strong) ViewController1 *viewController1;
步骤2:在VC1中创建VC2时,设置属性:
[viewController2 setViewController1:self];
步骤3:在ViewController2上设置按钮图像
[self.buttonVC2 setImage:[self.viewController1.buttonVC1 imageForState:UIControlStateNormal] forState:UIControlStateNormal];
注意:更好的模型是在VC1上提供一个返回正确图像的方法。例如,在VC1中:
- (UIImage *)imageForButton {
return [self.buttonVC1 imageForState:UIControlStateNormal];
}
在VC2中:
[self.buttonVC2 setImage[self.viewController1 imageForButton]];
步骤1:在ViewController2.h中,在VC2上创建一个属性以引用VC1:
#import "ViewController1.h"
@property (nonatomic, strong) ViewController1 *viewController1;
步骤2:在VC1中创建VC2时,设置属性:
[viewController2 setViewController1:self];
步骤3:在ViewController2上设置按钮图像
[self.buttonVC2 setImage:[self.viewController1.buttonVC1 imageForState:UIControlStateNormal] forState:UIControlStateNormal];
注意:更好的模型是在VC1上提供一个返回正确图像的方法。例如,在VC1中:
- (UIImage *)imageForButton {
return [self.buttonVC1 imageForState:UIControlStateNormal];
}
在VC2中:
[self.buttonVC2 setImage[self.viewController1 imageForButton]];
步骤1:在ViewController2.h中,在VC2上创建一个属性以引用VC1:
#import "ViewController1.h"
@property (nonatomic, strong) ViewController1 *viewController1;
步骤2:在VC1中创建VC2时,设置属性:
[viewController2 setViewController1:self];
步骤3:在ViewController2上设置按钮图像
[self.buttonVC2 setImage:[self.viewController1.buttonVC1 imageForState:UIControlStateNormal] forState:UIControlStateNormal];
注意:更好的模型是在VC1上提供一个返回正确图像的方法。例如,在VC1中:
- (UIImage *)imageForButton {
return [self.buttonVC1 imageForState:UIControlStateNormal];
}
在VC2中:
[self.buttonVC2 setImage[self.viewController1 imageForButton]];
这就是代表们的作用所在。定义如下:
@protocol ButtonSelectionDelegate <NSObject>
- (void)didSelectButtonImage:(UIImage *)image;
@end
在VC1的didSelectButtonImage:
中,您将使用委派提供的VC2更新插座按钮图像:
- (void)didSelectButtonImage:(UIImage *)image
{
[self.buttonOutlet setImage:image forState:UIControlStateNormal];
}
这就是代表们的作用所在。定义如下:
@protocol ButtonSelectionDelegate <NSObject>
- (void)didSelectButtonImage:(UIImage *)image;
@end
在VC1的didSelectButtonImage:
中,您将使用委派提供的VC2更新插座按钮图像:
- (void)didSelectButtonImage:(UIImage *)image
{
[self.buttonOutlet setImage:image forState:UIControlStateNormal];
}
这就是代表们的作用所在。定义如下:
@protocol ButtonSelectionDelegate <NSObject>
- (void)didSelectButtonImage:(UIImage *)image;
@end
在VC1的didSelectButtonImage:
中,您将使用委派提供的VC2更新插座按钮图像:
- (void)didSelectButtonImage:(UIImage *)image
{
[self.buttonOutlet setImage:image forState:UIControlStateNormal];
}
这就是代表们的作用所在。定义如下:
@protocol ButtonSelectionDelegate <NSObject>
- (void)didSelectButtonImage:(UIImage *)image;
@end
在VC1的didSelectButtonImage:
中,您将使用委派提供的VC2更新插座按钮图像:
- (void)didSelectButtonImage:(UIImage *)image
{
[self.buttonOutlet setImage:image forState:UIControlStateNormal];
}
将门店视为私人场所。如果视图控制器之间要传递信息,则应使用方法对其进行配置,以便一个控制器可以在另一个控制器中调用该方法。将插座视为专用插座。如果视图控制器之间要传递信息,则应使用方法对其进行配置,以便一个控制器可以在另一个控制器中调用该方法。将插座视为专用插座。如果视图控制器之间要传递信息,则应使用方法对其进行配置,以便一个控制器可以在另一个控制器中调用该方法。将插座视为专用插座。如果视图控制器之间要传递信息,则应使用方法对其进行配置,以便一个控制器可以在另一个控制器中调用该方法。由于高度耦合,这种做法非常糟糕。更不用说强大的控制器保持力,在某些条件下,由于高耦合,很容易导致保持循环不良实践。更不用说强大的控制器保持力,在某些条件下,由于高耦合,很容易导致保持循环不良实践。更不用说强大的控制器保持力,在某些条件下,由于高耦合,很容易导致保持循环不良实践。更不用说强大的控制器保留,在某些条件下可能很容易导致保留周期