从 UITableviewcell 移动到 ViewController 并使用故事板返回
Posted
技术标签:
【中文标题】从 UITableviewcell 移动到 ViewController 并使用故事板返回【英文标题】:Move from UITableviewcell to a ViewController and back using storyboard 【发布时间】:2017-01-10 05:59:34 【问题描述】:我有一个视图控制器,里面有多个 tableviewcells。我想使用情节提要从一个 tableviewcell 移动到另一个 viewcontroller。我有一个用于视图控制器的导航控制器。我真的没有找到解决这个问题的方法。
【问题讨论】:
你的意思是通过点击 UITableViewCell 从一个 VC 移动到另一个 VC 吗? 是的,当我选择单元格时,它应该移动到 VC 实现didSelectRowAtIndexPath
委托。当您点击一个单元格时,控制将进入此方法。在那里编写计算逻辑并导航到相应的视图控制器。
我想要的代码我不能使用 navigationcontroller 因为它是一个 uitableviewcell
【参考方案1】:
您应该实现didSelectRowAtIndexPath
委托,然后是一些用于移动到另一个视图控制器的逻辑。
@interface ViewController()<UITableViewDelegate>
...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
AnotherViewControllerClass *vc = [[UIStoryboard storyboardWithName:@"StoryboardNameOfAnotherViewController" bundle:nil] instantiateViewControllerWithIdentifier:@"AnotherViewControllerIdentifier"];
[self.navigationController pushViewController:vc animated:YES];
【讨论】:
我无法使用 navigationcontroller "在 UITableViewCell 类型的对象上找不到属性 'navigationController'" 你应该在你的 UITableViewController 子类中实现这个,而不是在你的 UITableViewCell(自定义)中。 我的 Tableview 在 Viewcontroller 里面,我已经在 viewcontroller 里面做了 那么你应该在 viewcontroller 内部实现这个,而不是在 uitableviewcell 内部实现 这个函数didSelectRowAtIndexPath
在你点击一个单元格时调用,对吧?问题是你不能使用导航控制器。【参考方案2】:
如果您想使用storyBoard,那么您可以使用Segue 从一个tableview 单元格跳转到另一个ViewController 您需要做的是 1)。右键单击并从表格视图单元格拖动到所需的视图控制器,然后释放它你会看到一个弹出选择“显示” 2)。单击segue并转到身份检查器并根据需要命名segue标识符 3).那么你只需要编写一个方法 prepareFor segue 方法并在其中编写这样的 if 语句
if (segue.identifier == "your identifier Name")
//`enter code here`write your logic of pushing the viewcontroller
上面的 if 代码很快,您可以对具有不同标识符名称的所有多个 tableviewcell 重复这些步骤
如果不使用情节提要,则使用此方法
if (indexpath.row == 0)
//use the push viewcontroller code here
对于每个索引路径,您可以检查并推送不同的视图控制器
【讨论】:
我不想去segue【参考方案3】:试试这个..
打开 Storyboard 并选择您的初始视图控制器 从 Xcode 的顶部栏菜单中选择编辑器 选择嵌入并选择 UINavigationController然后再次运行您的代码...
【讨论】:
我得到了一个使用nsnotificationcenter的代码,我可以在其中解决问题 ***.com/questions/19395343/…以上是关于从 UITableviewcell 移动到 ViewController 并使用故事板返回的主要内容,如果未能解决你的问题,请参考以下文章
无法从 UITableViewCell 加载 UICollectionView
将文本移动到 UITableViewCell 中的下一个文本字段
当移动到嵌入在 UITableViewCell 中的 UITextView 中的新行时,光标消失
将 UIView 移动到新的超级视图并从 UITableViewCell 再次返回