从同一个TableViewCell打开不同的ViewControllers(喜欢facebook通知)

时间:2014-05-24 03:16:01

标签: ios xamarin.ios xamarin

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

  

NavigationController.PushViewController(DestinationViewController,false);

当它被触发时,我在故事板上为DestinationViewController创建的对象看起来是null,并且所有“粘合”代码都在ViewDidLoad或ViewWillAppears上(它应该实例化每个对象)

我正在使用Tab Bar导航模型。

PS:如果我使用该应用程序并进入我的DestinationViewController它就可以了。

那么谁知道一种方法或有这样的事情的例子,或者什么东西让我靠近我想去的地方?

2 个答案:

答案 0 :(得分:1)

如果您使用

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.......) {

    }
}

希望这有助于解决您的问题。 您可能想要发布故事板的图像。

答案 1 :(得分:0)

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

在ViewController上声明一个公共属性。

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

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

我不知道这是否是最好的方法,但它运作良好。