0 objective-c selector uitableview ios uistoryboardsegue
我正在使用xcode中的故事板,并且在prepareForSegue方法中它崩溃了.我想要做的是从桌面视图进入另一个详细的桌面视图后点击一个单元格.这是代码.
GamesInfoViewController.m
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([[segue identifier] isEqualToString:@"ShowDetails"]) {
DetailViewController2 *detailViewController = [segue destinationViewController];
NSIndexPath *myIndexPath = [self.tableView indexPathForSelectedRow];
NSUInteger row = [myIndexPath row];
GameInfo *gameInfoObject;
gameInfoObject =[GamesInfoArray objectAtIndex:row];
detailViewController.DetailArray = @[gameInfoObject.HomeTeam, gameInfoObject.AwayTeam]; // IT CRASHES HERE!!!
}
}
Run Code Online (Sandbox Code Playgroud)
这是DetailViewController2.m
- (void)viewDidLoad {
[super viewDidLoad];
// Uncomment the following line to preserve selection between presentations.
// self.clearsSelectionOnViewWillAppear = NO;
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
[self.tableView reloadData];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
GamesInfoTableViewCell *cell = (GamesInfoTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"MainCell"];
cell.mainLabel.text = _DetailArray[0];
cell.awayTeamLabel.text = _DetailArray[1];
// Configure the cell...
return cell;
Run Code Online (Sandbox Code Playgroud)
}
DetailViewController2.h
#import <UIKit/UIKit.h>
@interface DetailViewController2 : UITableViewController
@property (strong, nonatomic) NSArray *DetailArray;
@end
Run Code Online (Sandbox Code Playgroud)
和是我在Storyboard中选择了DetailViewController2作为自定义类!
错误消息:'NSInvalidArgumentException',原因:' - [UINavigationController setDetailArray:]:无法识别的选择器发送到实例0x7fa65a537f00'
看来这一行
DetailViewController2 *detailViewController = [segue destinationViewController];
Run Code Online (Sandbox Code Playgroud)
返回一个UINavigationController
而不是一个DetailViewController2
如果DetailViewController2
嵌入在UINavigationController
你可能想要做的事情:
UINavigationController *navController = [segue destinationViewController];
DetailViewController2 *detailViewController = (DetailViewController2 *)navController.topViewController;
Run Code Online (Sandbox Code Playgroud)
如果DetailViewController2
是一个子类,UINavigationController
你可能忘记在故事板中明确说出它.
归档时间: |
|
查看次数: |
3347 次 |
最近记录: |