我想为几个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
的@end
和MyTableViewController
标记之间