使用故事板更改splitviewcontroller中的详细信息

时间:2014-07-06 14:55:43

标签: c# ios xamarin.ios storyboard xamarin

我已经在圈子里走了几个小时。我有一个Xamarin故事板应用程序,我有一个容器视图,我嵌入了一个拆分视图控制器。我试图根据表上的用户选择更改详细信息视图。在我的表ViewController中,我有:

    public override void ViewDidLoad()
    {
        base.ViewDidLoad ();

        string[] tableItems = new string[] {"Vegetables","Fruits","Flower Buds","Legumes","Bulbs","Tubers"};
        this.TableView.Source = new TableSource (tableItems, this);
        this.TableView.AllowsSelection = true;
        this.TableView.ReloadData();

    }

然后在我的表源代码中,我有以下内容应该更改细节。请注意,viewController1是表视图控制器,在设置源时传递给它。

    public override void RowSelected (UITableView tableView, NSIndexPath indexPath)
    {

        new UIAlertView("Row Selected", tableItems[indexPath.Row], null, "OK", null).Show();
        tableView.DeselectRow (indexPath, true); // iOS convention is to remove the highlight

        viewController1.ParentViewController.PerformSegue("DetailSegue", viewController1.ParentViewController);

    }

我已经从我的拆分视图控制器创建了一个segue到我的详细视图控制器,名为DetailSegue,这就是我所说的。这种错误,但无论如何我不认为调用segue是正确的方法。

我也尝试过:

viewController1.ParentViewController[1] = new TestDetailViewController();

但是当我使用storyboard时,TestDetailViewController方法需要intPtr句柄,我不知道如何引用它。拆分视图控制器的Xamarin配方不使用故事板,我找不到正确的方法。

1 个答案:

答案 0 :(得分:0)

你可能会尝试修改导航控制器的堆栈......就像这样(用有限的Xamarin知识翻译)......

public override void RowSelected (UITableView tableView, NSIndexPath indexPath) {

UINavigationController navController = self.splitViewController.viewControllers.lastObject;

NSArray newStack = new NSArray.arrayWithObjects(newController, nil);

navController.setViewControllers(newStack);

}

再一次,我在.NET上生锈了......这是我翻译的Objective-C ......

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

UINavigationController *navController = [[[self splitViewController] viewControllers] lastObject]
NSArray *newStack = [NSArray arrayWithObjects:newController, nil ];
[navController setViewControllers:newStack];

}

来源:http://www.dharmaworks.net/Consulting/switching-detail-views-in-uisplitviewcontroller-with-ios7