我已经处理了两个小时了,所以我想是时候问一问了,我已经在两个视图之间传递了很多次数据,但是这是我第一次遇到问题。
下面是我的源代码视图代码:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
TRTranslation *translation = [discussionsArray objectAtIndex:indexPath.row];
selectedDiscussionID = translation.discussionID;
[self performSegueWithIdentifier:@"communityToDetails" sender:self];
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"communityToDetails"])
{
TRDiscussionDetailsViewController *ddvc = [[TRDiscussionDetailsViewController alloc] init];
ddvc.discussionID = selectedDiscussionID;
NSLog(@" discussion id %@", ddvc.discussionID);
}
}
当我在这里记录它时,它有适当的值。
这是我的目标VC的.h
#import <UIKit/UIKit.h>
@interface TRDiscussionDetailsViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
@property (strong, nonatomic) NSString *discussionID;
@end
当我将discussionID值记录在viewDidLoad中时:结果为null。
发布于 2014-04-04 16:20:24
如果TRDiscussionDetailsViewController是您的目标视图控制器,则需要保持它不受segue的影响,而不是重新实例化它。我觉得你应该这么做:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"communityToDetails"]) {
TRDiscussionDetailsViewController *ddvc = (TRDiscussionDetailsViewController*)segue.destinationViewController;
ddvc.discussionID = selectedDiscussionID;
NSLog(@" discussion id %@", ddvc.discussionID);
}
}
希望它能帮上忙
发布于 2014-04-04 16:20:06
取代:
TRDiscussionDetailsViewController *ddvc = [TRDiscussionDetailsViewController alloc init];
通过以下方式:
TRDiscussionDetailsViewController *ddvc = (TRDiscussionDetailsViewController *)segue destinationController;
因为,在您的代码中,您正在创建一个新的TRDiscussionDetailsViewController
,但这不是执行segue时要在其上创建的。
发布于 2014-04-04 16:20:14
你可以试试这个
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{ if ([segue.identifier isEqualToString:@"communityToDetails"]) {
TRDiscussionDetailsViewController *ddvc = (TRDiscussionDetailsViewController *)[segue destinationViewController];;
ddvc.discussionID = selectedDiscussionID;
NSLog(@" discussion id %@", ddvc.discussionID);
}
}
https://stackoverflow.com/questions/22867922
复制相似问题