gpt4 book ai didi

ios - 如何使用两个 Push Segue 在导航 Controller 中的两个 View Controller 之间传递数据?

转载 作者:行者123 更新时间:2023-11-28 20:01:51 24 4
gpt4 key购买 nike

我在导航 Controller 中有两个 View Controller 。在第一个 View Controller 中,我有两个按钮。他们都使用 Push segue 调用第二个 View Controller ,但是:

  1. 我需要知道在第二个 View Controller 中是哪个按钮发送给我的。怎么样?
  2. 在第二个 View Controller 中,我有一个 UIDatePicker 和一个“确定”按钮:当按下“确定”时,如何将所选日期发送到第一个 View Controller ? (我如何收到它们?)

编辑:

我不知道我的问题是否清楚:现在我知道如何使用 prepareForSegue 将数据从第一个 View Controller 传递到第二个 View Controller ,但我真正需要的是从第二个 View Controller 到第一个,如果没有 prepareForSegue(按下 Ok 时)我怎么能做到这一点?

编辑2:

我做到了。伙计们,这很简单……我决定使用模态转场:

Firstviewcontroller.h:

+(FirstViewController *)getInstance;

Firstviewcontroller.m:

static FirstViewController *instance =nil;
+(FirstViewController *)getInstance
{
return instance;
}

在它的 ViewDidLoad 中:

instance = self;

Secondviewcontroller.m,在 OkButton IBAction 中:

SecondViewController *secondViewController = [SecondViewController getInstance];

//...
//modify what I need to modify in secondviewcontroller
//...

[self dismissModalViewControllerAnimated:YES];

就是这样。无论如何,谢谢大家。

最佳答案

为 Storyboard中的每个segue分配标识符并实现

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure your segue name in storyboard is the same as this line
if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
{
// Get reference to the destination view controller
YourViewController *vc = [segue destinationViewController];
[vc setDelegate:self];
// Pass any objects to the view controller here, like...
[vc setMyObjectHere:object];
}
}

有关 How to use storyboard and pass value check this article 的更多信息或 this discussion on stackoverflow

对于第二个问题你可以使用delegate patternSecondViewController.h

@protocol SomethingDelegate <NSObject>
- (void)dateChanged:(NSString *)dateStr; //you can use NSDate as well

@end
@interface ViewController2 : UIViewController

@property(weak) id<SomethingDelegate> delegate;

@end

在 .m 文件中

-(void) OkClicked{

[_delegate dateChanged:@"YOUR_DATE_VALUE"];
}

FirstViewController.h

#import "SecondViewController.h"
@interface FirstViewController : UIViewController<SomethingDelegate>

以.m 为单位

  -(void)dateChanged:(NSString *)dateStr{

// do whatever you need with dateStr
//also i made some change in prepareForSegue method
}

注意:-注意 VC 的命名 session

关于ios - 如何使用两个 Push Segue 在导航 Controller 中的两个 View Controller 之间传递数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23671514/

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