这是我想要实现的目标:我以编程方式添加一组自定义对象。这些随时可用的每一个都应该执行现有的转场。在performForSegue
中,我设置了destinationViewController 的一些属性。
这是设置:我有一个自定义对象 CustomButton,它有一个属性 CustomProperty。在我的主视图中,我有一个NSMutableArray
填充了这些对象的实例。点击识别器连接到自定义按钮。在单击自定义按钮时,主视图和另一个视图之间也有一个 segue。我还有一个 prepareForSegue ,我在其中进行一些处理。
主 viewDidLoad 看起来像:
- (void)viewDidLoad
{
buttons = [[NSMutableArray alloc] init];
CustomButton *customButton1 = [[CustomButton alloc] init];
// Attach touch recognizers
UITapGestureRecognizer *singleFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(customButtonPressed:)];
[customButton1 addGestureRecognizer:singleFingerTap];
[self.view addSubview:customButton1];
// Add it to the buttons array
[self.buttons addObject:customButton1];
[super viewDidLoad];
NSLog(@"---------viewDidLoad-----------");
NSLog(@"count = %u", buttons.count);
for (id tempButton in buttons)
{
NSLog(@"Custom Property = %@", ((CustomButton *)tempButton).customProperty);
}
}
prepareForSegue 看起来像
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"---------prepareForSegue-----------");
NSLog(@"count = %u", buttons.count);
for (id tempButton in buttons)
{
NSLog(@"Content = %@", ((CustomButton *)tempButton).customProperty);
}
}
当我运行此应用程序并调用 viewDidLoad 时,计数和 customProperty 会按预期打印。按下按钮 prepareForSegue 被调用并且计数为 1(如预期的那样)但 customProperty 为空。
知道发生了什么吗?