gpt4 book ai didi

ios - View Controller Segue Xamarin

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:15:13 26 4
gpt4 key购买 nike

我想实现我已经在 iOS 中完成的相同功能。我首先通过 Ctrl-clickdragviewcontroller 到 viewcontroller 之间创建 segue,然后我使用 segue identifier 来到达 destinationviewcontroller

但是,在 Xamarin 中,如果没有按钮,则无法通过 Ctrl-clickdrag 添加 segue。我想知道有没有办法实现 native iOS 提供的相同功能?我遵循了以下教程,但它基于 button segue,而不是 viewcontroller to viewcontroller seguehttp://developer.xamarin.com/guides/ios/user_interface/introduction_to_storyboards/

Xamarin

 public override void RowSelected (UITableView tableView, NSIndexPath indexPath)
{
UIStoryboard board = UIStoryboard.FromName ("MainStoryboard", null);
SecondViewController sVC = (SecondViewController)board.InstantiateViewController ("SecondViewController");
ctrl.ModalTransitionStyle = UIModalTransitionStyle.CoverVertical;
iv.PresentViewController(sVC,true,null);
}

//在 iOS 代码中

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"isDetail" sender:self];
}


- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{

if ([segue.identifier isEqualToString:@"isDetail"]) {

SecondViewController *fVC = [segue destinationViewController];

}
}

最佳答案

您可以通过 Ctrl-Clicking 和 dragging 从源 View Controller 底部的灰色区域到第二个 View Controller ,在两个 View Controller 之间添加一个 segue (见图)。 segue 的属性(例如过渡样式)可以像 Storyboard表面上的任何其他控件一样在属性 Pane 中进行编辑。

当你想使用 segue 时,这很简单:

PerformSegue ("detailSegue", this);

其中 detailSegue 是 Storyboard中设置的转场标识符。然后在 PrepareForSegue 中进行初始化:

public override void PrepareForSegue (UIStoryboardSegue segue, NSObject sender)
{
if (segue.Identifier == "detailSegue") {

SecondViewController = segue.DestinationViewController;

// do your initialisation here

}
}

据推测,(查看您的示例代码)您希望目标 View Controller 的初始化依赖于在 TableView 中选择的行。为此,您可以向 View Controller 添加一个字段以保存所选行,或者“滥用”PerformSegue 的 sender 参数以通过 NSIndexPath 传递:

public override void RowSelected (UITableView tableView, NSIndexPath indexPath)
{
this.PerformSegue ("detailSegue", indexPath); // pass indexPath as sender
}

然后:

public override void PrepareForSegue (UIStoryboardSegue segue, NSObject sender)
{
var indexPath = (NSIndexPath)sender; // this was the selected row

// rest of PrepareForSegue here
}

关于ios - View Controller Segue Xamarin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27804690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com