我想为几个tableviewcontroller使用相同的.h和.m。但是,我想根据当前视图做不同的事情。问题是,我不知道如何区分我的TableViewController(我看到有故事板ID,如何使用它?),怎么说?如果是viewNumeroOne,我要这样做,否则,如果viewNumerotwo我这样做。

或者,也许我需要为每个TableViewController使用.h和.m吗?但这似乎不是最佳解决方案。

有人来帮助我吗?

谢谢,

最佳答案

这取决于您的确切用例,但是您可能希望使用以前的ViewController中的prepareForSegue将标志传递给TableViewController。

您需要在segue中添加一个标识符,在下面的示例中,我使用MoveToTableViewController

例如:

  - (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"MoveToTableViewController"]) {
          MyTableViewController *tableViewController = [segue destinationViewController];
           [tableViewController setTableViewControllerMode:TableViewControllerModeTime];
    }
}


在这种情况下,TableViewControllerModeTime应该是enum的一部分,您需要在MyTableViewController.h中声明它(在@interface标记上方)

typedef enum TableViewControllerMode {
    TableViewControllerModeTime,
    TableViewControllerModeDate,
    TableViewControllerModeUserData
} TableViewControllerMode ;


您还应该添加

@property (nonatomic, assign) TableViewControllerMode tableViewControllerMode;


对于您的MyTableViewController.h文件,但是此@property应该在@interface@endMyTableViewController标记之间

08-19 11:41