如何告诉即将到来的viewController被哪个按钮调用

|| 我有一个viewController,可以说
blaVC
,它通过按下按钮来调用另一个视图控制器
blubbVC
。由于有4个按钮,所有按钮都用相同的笔尖调用
blubbVC
,但是内容应根据
blaVC
中按下哪个按钮而有所不同(内容将从plist加载),我需要
blubbVC
才能知道\“ I \”我们已经被调用,因为按下了按钮A,所以我将使用objectForKey:@ \“ button A \” \“从plist加载(可以这么说。)。 我这样称呼blubbVC
- (IBAction) buttonA:(id)sender {
blubbVC *detailView = [[blubbVC alloc] initWithNibName:@\"blubbNib\" bundle:nil];
[self.navigationController pushViewController:detailView animated:YES];
[detailView release];
}
我试图通过
sender
,但是当我将内容加载到
initWithNibName
中时,
sender
来晚了,该内容已被加载(或试图加载),并且我的视图保持空白。我该怎么做? 谢谢!     
已邀请:
您应该定义一个函数,该函数说在初始化之后,将发送者(或代表按下哪个按钮的某个值)设置为所有状态。 例如:
[detailView setupContent:(id)sender];
初始化视图控制器时,它尚未显示。在调用pushViewController之前,请调用新函数,因此您需要:
- (IBAction) buttonA:(id)sender {
    blubbVC *detailView = [[blubbVC alloc] initWithNibName:@\"blubbNib\" bundle:nil];
    [detailView setupContent:sender];
    [self.navigationController pushViewController:detailView animated:YES];
    [detailView release];
}
如果确实为时已晚(您需要\'InitWithNibName \'中的数据),则可以定义自己的
-[initWithNibName: andSender:]
或类似名称,并在设置其余状态之前调用
[super initWithNibName:]
。     
您需要在视图控制器中创建自定义init方法。就像是:
+(id)initWithCaller:(NSString*)caller
{
    if(self == [super initWithNibName:@\"blubbNib\" bundle:nil]) 
    {
      calledFrom = x;
    }
    return self;
}
那只是从内存中键入内容,因此可能存在一些错误。然后,您将在IBAction中使用该新的init方法     

要回复问题请先登录注册