Ios 从同一TableViewCell打开不同的ViewController(如facebook通知)

Ios 从同一TableViewCell打开不同的ViewController(如facebook通知),ios,xamarin.ios,xamarin,Ios,Xamarin.ios,Xamarin,问题是,我正在尝试制作一个应用程序,在同一个TableView(比如facebook)中接收不同数据的更新,但这不是问题所在。所有数据都有相同的格式,问题是当你点击一行我想打开相应的视图时,我能识别出正确的视图来显示。我尝试使用下面的方法 NavigationController.PushViewController(DestinationViewController,false) 当它被触发时,我在故事板上为DestinationViewController创建的对象显示为空,并且所有的“粘合

问题是,我正在尝试制作一个应用程序,在同一个TableView(比如facebook)中接收不同数据的更新,但这不是问题所在。所有数据都有相同的格式,问题是当你点击一行我想打开相应的视图时,我能识别出正确的视图来显示。我尝试使用下面的方法

NavigationController.PushViewController(DestinationViewController,false)

当它被触发时,我在故事板上为DestinationViewController创建的对象显示为空,并且所有的“粘合”代码都在ViewDidLoad或ViewWillIsped上(这应该让每个对象都实例化)

我使用的是选项卡栏导航模型

PS:如果我使用该应用程序并进入我的DestinationViewController,它就会工作

那么,谁知道这样的方法或者有这样的例子,或者能让我接近我想去的地方呢?

如果你使用

NavigationController.PushViewController (DestinationViewController, false);
我认为在使用视图控制器之前,需要先分配它

DestinationVC *vc = [DestinationVC alloc] init];
如果我错了,请纠正我

此外,如果您正在使用故事板并将控件拖动到不同的视图,则应使用该方法

[self.navigationController performSegueWithIdentifier:@"" sender:self];
然后可以使用prepareForSegue方法

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"whatYouNamedItInTheStoryboard"]) {
        // do stuff for this segue
    } else if ([segue identifier] isEqual.......) {

    }
}
希望这能帮助你解决问题。
你可能想发布故事板的图片。

我解决这个问题有点像迈克尔和保罗,他说

在ViewController上声明公共属性

然后将当前ViewController传递给表源,在RowSelected方法上,我将所选值放在ViewController的公共属性上

在PrepareForSegue方法中,我检查它是哪种类型的数据,以便在segue.DestinationViewController上分配适当的segue并传递数据


我不知道这是否是最好的方法,但效果很好。

您的
prepareforsgue
中有哪些代码用于表视图场景?嗯,我使用从表源中选择的行来处理对表视图行的单击,我不知道是否可以在同一个表视图单元格中放置多个分段,事实上,实际上XCode Interface Builder不允许我为每个元素链接多个segue(我认为),因此我不使用ViewController的PrepareForSegue方法,我应该使用它吗?无论使用哪种方法,都需要显示代码,在其中为保存选定单元格对象的对象引用的新viewcontroller设置属性。您提到了一个故事板,所以我假设您正在触发segues,这意味着prepareforsgue是您访问目标视图控制器的地方