【问题标题】:Passing data to next view controller with modal segue使用模态segue将数据传递给下一个视图控制器
【发布时间】:2023-03-23 01:00:02
【问题描述】:

我曾尝试在 Storyboard 中使用模态 segue 从 didSelectRowAtIndexPath 推送用户数据并将其发送到下一个 View Controller 。

这是我的代码:

在我的头文件中:

@interface ListNearby : UIViewController<UITableViewDataSource,UITableViewDelegate,CLLocationManagerDelegate,UINavigationControllerDelegate,UINavigationBarDelegate>

{
   @public
   UserDetails *UD;
}

还有我的 .m 文件:

ResultNearbyList *cell = (ResultNearbyList *) [tableView cellForRowAtIndexPath:indexPath];

self.userFullNameString = cell.userFullName.text;

NSLog(@"FulluserName NextVC = %@",self.userFullNameString);

[self performSegueWithIdentifier:@"sendUserData" sender:self];

我正在准备 segue 将数据传递给下一个视图控制器:

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

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

        UD = (UserDetails *) segue.destinationViewController;

        UD.userFullName.text = self.userFullNameString;

        NSLog(@"FulluserName Segue = %@",UD.userFullName.text);

        NSLog(@"FulluserName Current = %@",self.userFullNameString);

    }
}

Segue ,显示 NextViewController 没有任何问题。问题是 userFullNameString 没有发送到 NextViewController。我正在检查 NSLog ,而 FulluserName Segue 返回 null,FulluserName Current 返回我需要的值。

如何将该数据发送到下一个视图控制器?

问候..

【问题讨论】:

  • 什么是userFullName
  • 这是一个字符串,我需要将它传递给下一个视图控制器
  • 尝试在UserDetails.h 文件和准备segue 方法UD.userFulName = self.userFullNameString; 中声明属性@property (nonatomic, strong)NSString *userFulName 然后在下一个视图控制器的viewDidLoad 中(即UserDetails)userFullName.text = userFulName;试试这个
  • 你度过了我的夜晚@ArunKumar,非常感谢你,在堆栈中,关于推送 segue 的所有问题,没有关于模态 segue 传递数据和处理的细节。非常感谢...
  • 很高兴能帮到你。所以我写下答案请接受

标签: ios storyboard uistoryboardsegue


【解决方案1】:

声明一个属性

@property (nonatomic, strong)NSString *userFulName;

UserDetails.h 文件中。在你准备 segue 方法中

UD.userFulName = self.userFullNameString;

然后在您的下一个视图控制器的viewDidLoad 中(即 UserDetails)

userFullName.text = userFulName;

【讨论】:

  • 也就是说,数据不能传递给 UI 对象。首先,我们需要将其分配给下一个视图控制器的非 UI 元素,而不是在 viewload 中,例如将其分配给 UILabel.text ...
  • 我们不能在 segue 方法中直接在另一个视图控制器的标签中设置字符串值。为此,我们需要创建一个 NSString 对象,该对象将在执行 segue 时将值传递给 UILabel 对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-27
  • 1970-01-01
  • 2016-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多