【问题标题】:Trouble passing data between scenes when I segue转场时无法在场景之间传递数据
【发布时间】:2015-10-14 11:00:20
【问题描述】:

我已经完成了使用prepareForSegue:sender: 方法在场景中传递数据的教程,但是现在当我尝试使用传递的数据时,它是空的。我也在使用导航控制器。

这是.h -

#import <UIKit/UIKit.h>

#import "TalkChatTableViewController.h"

@interface CreateChatTableViewController : UIViewController 

@end

这是.m

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

    if ([[segue identifier] isEqualToString:@"idSegueMyChatsToChat"]){
             TalkChatTableViewController *tctvc = [segue destinationViewController];
             tctvc.chatObjectId = @"test";
             NSLog(@"%@", tctvc.chatObjectId);
             //succesfully logs out test
          }
}

当我用上述方法登录时,结果很好。但是当我去我的TalkChatTableViewController 课程时,它并没有在viewDidLoad 中注销;它是空的。

标题如下所示:

#import <UIKit/UIKit.h>
@interface TalkChatTableViewController : UITableViewController
@property (nonatomic) NSString * chatObjectId;
@end

最后是 .m -

#import "TalkChatTableViewController.h"

@implementation TalkChatTableViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"%@", self.chatObjectId);
   // logs null
}

@end

【问题讨论】:

  • 你在初始化 self.chatObjectId 吗?
  • 不会在prepareForSegue方法中初始化吗?
  • 你是如何在两个 viewController 之间设置 segue 的?你在哪里调用 -performSegueWithIdentifier:?

标签: ios objective-c cocoa-touch uiviewcontroller segue


【解决方案1】:
TalkChatTableViewController * tctvc = (TalkChatTableViewController *)[segue destinationViewController];

这就是最终的工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多