从 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 再次返回

重新排序时无法从当前位置拖动 UITableViewCell

来自 .xib 文件的自定义 UITableViewCell