我正在开发一个带有自定义拆分视图的Ipad应用。在主视图中我有一个tableViewController。我在导航栏中添加了一个带有添加按钮的项目。此按钮链接(我使用故事板)与popover segue链接到另一个tableViewController,其中包含一些输入数据的单元格。按钮“save”将popover视图与masterView列表中的添加项目相关联。我接下来要做的是链接主视图的原型单元格到另一个视图,以使用户能够编辑所选项目。我想将这个视图与popover segue链接(就像添加按钮一样)并且问题在哪里:我从xcode得到一个红色问题:无法编译连接:=> anchorView => >
这是我的代码示例,工作正常。当我点击一个单元格进行编辑时,我想做同样的事情。
masterSplitView表
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"assetCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
// Configure the cell...
AssetModel *myAssetModel = [self.arrayAsset objectAtIndex:indexPath.row];
cell.textLabel.text = myAssetModel.name;
// cell.textLabel.text = @"test";
return cell;
}
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"addAssetSegue"]){
AddAssetTVC *addAssetTVC = segue.destinationViewController;
addAssetTVC.delegate = self;
UIStoryboardPopoverSegue* popoverSegue = (UIStoryboardPopoverSegue*)segue;
[addAssetTVC setPopoverController:[popoverSegue popoverController]];
}
}
- (void) theSaveButtonOnTheAddAssetTVCWasTapped:(AddAssetTVC *)controller{
[controller.navigationController popViewControllerAnimated:YES];
[self reloadCache];
[self.tableView reloadData];
[self viewDidLoad];
}
添加视图的保存方法:
- (IBAction)save:(id)sender{
[popoverController dismissPopoverAnimated:YES];
NSLog(@"Telling the ADDASSET Delegate that Save was tapped on the AddAssetTVC");
{...unrevelant coredata methods}
[self.delegate theSaveButtonOnTheAddAssetTVCWasTapped:self];
}
感谢您阅读,
亚历山大
答案 0 :(得分:4)
我遇到了同样的问题。通过使用自定义segue解决它。在班级的prepare
方法中:
UITableViewController
UIPopoverController
frame
作为CGRect
以下是一些示例代码:
UITableViewController *tvc = (UITableViewController *)self.sourceViewController;
DetailsViewController *details = (DetailsViewController *)self.destinationViewController;
UITableViewCell *cell = [tvc.tableView cellForRowAtIndexPath:[tvc.tableView indexPathForSelectedRow]];
UIPopoverController *pop = [[UIPopoverController alloc] initWithContentViewController:details];
details.popoverController = pop;
CGSize size = CGSizeMake(640, 460);
pop.popoverContentSize = size;
[pop presentPopoverFromRect:cell.frame
inView:tvc.tableView
permittedArrowDirections:UIPopoverArrowDirectionUp | UIPopoverArrowDirectionDown
animated:YES];
答案 1 :(得分:4)
我在我的项目中做的完全相同。我今晚在这里回答了一个非常相似的问题https://stackoverflow.com/a/14514837/1712892如果这有帮助,请告诉我。
答案 2 :(得分:0)
我能用最少的编码做到这一点。试试这个:
答案 3 :(得分:0)
根据@ Rich的回答,但使用{
"slopes": {
"slopeiOS": {
"featuredCourse": "k43l2l2-beginner-ios",
"courses": {
"k43l2l2-beginner-ios": {
"name": "Beginner iOS 1",
"order": 12,
"price": 250,
"salePrice": 150,
"onSale": true,
"purchases": 12000,
"totalMinutes": 102282,
"videos": {
"k23j3l": {
"order": 22,
"duration": 150,
"title": "How to install Xcode",
"description": "Learn how to install Xcode.."
}
}
}
}
}
}
}
和Swift。
addAll()