你能嵌入一个IBAction(按钮) - (void)viewDidAppear:(BOOL)动画?怎么样?

时间:2012-10-30 00:37:25

标签: xcode xcode4 xcode4.2 ibaction viewdidappear

我确定我需要将我的按钮操作(findMe)作为viewDidAppear的一部分,并且不能将其作为单独的IBAction,因为它有showsUserLocation错误。

答:这有可能吗?

B:这样做有意义吗?

C:它会是什么样子?

我当前认为错误的代码如下:

-(void)viewDidAppear:(BOOL)animated
{
  if (findMe == YES)
  {
    self.mapView.showsUserLocation = YES;
    [mapView setCenterCoordinate:mapView.userLocation.coordinate animated:YES];
  }
}

谢谢!

1 个答案:

答案 0 :(得分:1)

您的问题非常容易混淆且不完整(请包含有错误的代码和确切的错误消息),但我会回答我认为您可能会问的三件事。

如果您的问题是您希望在两种方法中使用相同的代码,请将两种方法的公共部分提取到第三种方法中,并让它们都调用它。

- (IBAction) button {
    stuff
    [self commonPart];
}

- (void) viewDidAppear {
    stuff
    [self commonPart];
}

- (void) commonPart {
    stuff they both do
}

如果您的问题是需要在viewDidAppear方法中了解UI的状态,可以使用IBOutlet来引用相关控件。

- (void) viewDidAppear {
    if (self.findMeButton.someThingYouWantToCheck) {
          self.mapView.showsUserLocation = YES;
          [mapView setCenterCoordinate:mapView.userLocation.coordinate animated:YES];
    }
}

如果您的问题是您需要存储是否已按下某个按钮以便以后可以根据它执行不同的操作,只需将BOOL实例变量添加到您的对象,并在按下IBAction的按钮中将其设置为YES。

你试图做的是什么?