Ios 出口收集带NSArray至单体

Ios 出口收集带NSArray至单体,ios,objective-c,xcode,singleton,iboutletcollection,Ios,Objective C,Xcode,Singleton,Iboutletcollection,我有一个音序器,每个音轨都有按钮作为插座集合。代码在它自己的视图控制器中运行良好,但是我想将所有方法转移到一个单例中,这样我就可以从其他视图控制播放 比如我有 @property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *trackOneOutletCollection; 然而,我有方法作用于每个按钮的alpha和标签;这些方法包含这些值,我不知道如何从singleton访问这些值。我认为singleton是存储所有数据

我有一个音序器,每个音轨都有按钮作为插座集合。代码在它自己的视图控制器中运行良好,但是我想将所有方法转移到一个单例中,这样我就可以从其他视图控制播放

比如我有

@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *trackOneOutletCollection;

然而,我有方法作用于每个按钮的alpha和标签;这些方法包含这些值,我不知道如何从singleton访问这些值。我认为singleton是存储所有数据的地方,然后从类文件视图控制器调用它?

您可以使用继承概念来实现此功能。您需要创建一个包含
IBOutletCollection
属性的
ParentViewController
。所有视图控制器的其余部分都是父视图控制器的子视图。然后,您可以在其他视图OnController中访问
iOutletCollection
。像这样

家长视图控制器:-

@interface ParentViewController : UIViewController

@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *trackOneOutletCollection;

@end
@interface YourViewController : ParentViewController

@end
childview控制器-

@interface ParentViewController : UIViewController

@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *trackOneOutletCollection;

@end
@interface YourViewController : ParentViewController

@end
.m文件

@implementation YourViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"trackOneOutletCollection = %@"self.trackOneOutletCollection);
}
@end

您可以使用继承概念来实现此功能。您需要创建一个包含
IBOutletCollection
属性的
ParentViewController
。所有视图控制器的其余部分都是父视图控制器的子视图。然后,您可以在其他视图OnController中访问
iOutletCollection
。像这样

家长视图控制器:-

@interface ParentViewController : UIViewController

@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *trackOneOutletCollection;

@end
@interface YourViewController : ParentViewController

@end
childview控制器-

@interface ParentViewController : UIViewController

@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *trackOneOutletCollection;

@end
@interface YourViewController : ParentViewController

@end
.m文件

@implementation YourViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"trackOneOutletCollection = %@"self.trackOneOutletCollection);
}
@end

您不应该将按钮直接连接到singleton。视图控制器中的按钮应触发视图控制器中调用播放器单例(播放/暂停等)上适当方法的代码。您不应将按钮直接连接到单例。视图控制器中的按钮应触发视图控制器中调用播放机单例(播放/暂停等)上适当方法的代码我已经有了此设置,但是在父视图控制器中我有播放按钮,在子视图控制器中我有序列器按钮我已经有了此设置,但是,在父视图控制器中,我有播放按钮,在子视图控制器中,我有序列器按钮