大家好,我在UIViewController有一个UITableView 当点击表中的一行时,我正在收集单元格的文本值,并将其放在名为localstringGValue的字符串中。

我想传递该字符串并将其显示在另一个viewController ,但不使用-pushViewController :我希望将此值存储在NSUserDefaultsNSDictonary ,然后在另一个视图控制器的viewWillapper上显示此存储的值在标签中。

在我的.h

 NSString *localStringGValue;

在我的.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    localStringGValue = [tableView cellForRowAtIndexPath:indexPath].textLabel.text; 
}

在我的其他视图控制器中:

-(void)viewWillAppear
{
    label.text=localStringGValue;
}

提前致谢。

===============>>#1 票数:2 已采纳

保存到nsuserdefaults:

[[NSUserDefaults standardUserDefaults] setObject:localstringGValue forKey:@"localstringGValue"];
[[NSUserDefaults standardUserDefaults] synchronize];

从nsuserdefaults检索:

NString *localstringGValue = [[NSUserDefaults standardUserDefaults] objectForKey:@"localstringGValue"];

===============>>#2 票数:1

只需使用delegate 在推送“UploadViewController”实例之前,您需要将其delegate设置为self (在GoogleDocMainPageController.m中)。 每次选择tabel单元格时,它都会通过调度self.delegate的方法为self.delegate (这里是GoogleDocMainPageController实例)设置值,该方法由GoogleDocMainPageController实现:

[self.delegate setDataAfterSelectedTabelCell:[NSString stringWithFormat:@"TalbeCell %d selected", [indexPath row]]];

主要代码如下所示:
UploadViewController.h:

#import <UIKit/UIKit.h>

@class UploadViewController;

@protocol UploadViewControllerDelegate <NSObject>

- (void)setDataAfterSelectedTabelCell:(NSString *)stringValueInCell;

@end

@interface UploadViewController : UITableViewController

@property (nonatomic, retain) id <UploadViewControllerDelegate> delegate;

@end

UploadViewController.m:

//...
@synthesize delegate = _delegate;

//...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self.delegate setDataAfterSelectedTabelCell:[NSString stringWithFormat:@"TalbeCell %d selected", [indexPath row]]];
}

GoogleDocMainPageController.h:

#import <UIKit/UIKit.h>

#import "UploadViewController.h"

@class UploadViewController;

@interface GoogleDocMainPageController : UIViewController <UploadViewControllerDelegate>

- (void)loadUploadViewController;

@property (nonatomic, retain) UILabel * glLabel;
@property (nonatomic, retain) UploadViewController * uploadViewController;

@end

GoogleDocMainPageController.m:

//...
@synthesize glLabel = _glLabel;
@synthesize uploadViewController = _uploadViewController;

//...
- (void)viewDidLoad
{
    [super viewDidLoad];

    UIButton * uploadButton = [[UIButton alloc] initWithFrame:CGRectMake(10.0f, 160.0f, 300.0f, 35.0f)];
    [uploadButton setBackgroundColor:[UIColor blackColor]];
    [uploadButton setTitle:@"Upload Button" forState:UIControlStateNormal];
    [uploadButton addTarget:self action:@selector(loadUploadViewController) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:uploadButton];
    [uploadButton release];

    self.glLabel = [[UILabel alloc] initWithFrame:CGRectMake(10.0f, 200.0f, 300.0f, 35.0f)];
    [self.glLabel setBackgroundColor:[UIColor blackColor]];
    [self.glLabel setTextColor:[UIColor whiteColor]];
    [self.glLabel setTextAlignment:UITextAlignmentCenter];
    [self.glLabel setText:@"Default"];
    [self.view addSubview:self.glLabel];

    self.uploadViewController = [[UploadViewController alloc] initWithStyle:UITableViewStylePlain];
}

//...
#pragma mark -

- (void)loadUploadViewController
{
    [self.uploadViewController setDelegate:self];
    [self.navigationController pushViewController:self.uploadViewController animated:YES];
}

#pragma mark - UploadViewControllerDelegate

- (void)setDataAfterSelectedTabelCell:(NSString *)stringValueInCell
{
    [self.glLabel setText:stringValueInCell];
}

===============>>#3 票数:0

为什么不声明一些@property(nonatomic,retain)@synthesize呢? 然后将自动创建getter / setter。 否则,请自己定义一些getter / setter。

===============>>#4 票数:0

通过以下步骤 -

在First ViewController中 -

  1. 创建第二个ViewController的Object,如SecondViewController * sec = [[SecondViewController alloc] init]; sec.myLable = @“My Lable String”;

    在Second ViewController中 -

  2. 在.h文件中,UILable * myLable;

    @property(nonautomic,retain)IBOutlet UILable * myLable;

    2.在.m文件中@synthesize myLable;

  ask by ICoder translate from so

未解决问题?本站智能推荐:

3回复

无法将UITableViewCell didSelectRowAtIndexPath数据传递给另一个视图控制器

我目前在主视图控制器中有一个UITableView。 我希望将所选行的数据传递到项目中的另一个视图控制器。 这是到目前为止我得到的,尽管有错误。 为什么是这样? 我在.h文件中引用了类和头文件。 我已经尝试了所有我能想到的东西,对此我将非常感谢。
1回复

将数组从RightChildViewController传递到MainVIewController

我在使用SlidingViewController时遇到问题。 我的滑动视图控制器具有左视图控制器,主视图控制器和右视图控制器。 我的左视图控制器是菜单样式的视图控制器,并将主视图控制器切换到选定的视图控制器。 右视图控制器是一个表视图控制器,最近使用NSUserDefault键进行搜索。
2回复

目标C-将数据从具有表视图的第二个VC传递到第一个VC

已经设法通过tableview将输入文本从第一个VC传递到第二个VC。 首先VC没有tableview。 第一个VC:UItextField-用户键入一些名称。 UIButton * add-具有segue的按钮(prepareForSegue) 第二个VC:TableView使
2回复

如何将数据的属性传递给anotherViewController(StoryBoard)

我想在选择一个tableviewcell之后传递数据的属性。请指导我。我已经设置了detailviewcontroller.DataArray是detailviewcontroller中的mutablearray.peripheralManager是我的NSbject.Peripheral是我的
4回复

将indexpath值传递给FirstViewController

我在应用程序中使用了两个ViewController。 我的FirstViewController中有一个按钮。 当我选择按钮时,它将按下SecondViewController。 我在SecondViewController中有一个tableView。 如何在不使用NSUserDefa
1回复

如何根据iPhone中TableView选择的行传递firstview值

我有3 ViewController ,我的FirstView是我显示从数据库中获取的所有数据的地方,在SecondView我正在数据库中插入新数据。 到这里为止工作很好 我单击“ 编辑”按钮时的问题,然后我的FirstView进入编辑模式。 这时,我必须传递在FirstView上显示
2回复

如何将数组,字符串或包含数据的任何对象调用到另一个类中-iPhone

我的应用程序中有2个课程。 View1&View2; 当我使用它们时,我想在另一个类中使用诸如array,strin,label.text之类的对象。 查看1.m 给出正确的输出 但在View2中: 打印空值 为什么呢? 该怎么办? 提前致谢..
1回复

将UIGestureRecognizer事件传递给子TableViewCells

我目前有以下设置: 一个RootVC,在self.view上带有UIPanGestureRecognizer。 然后,RootVC有一个子UITableViewController,因此UITableViewController.view是self.view的子视图。 UITabl
2回复

将对象传递给UIViewController的子视图

这可能真的很简单,但是我无法理解。 我有一个UIViewController,上面放有两个UITableView子视图(使用情节提要)。 它们都具有自定义类,并且用于两个单独的项目列表。 使用自定义类是因为可以将每个UITableView中的单元格拖放到表之间。 视图控制器被隔离到
1回复

将UITableViewCell引用传递给其他VC,使其消失

我正在做类似于whatsapp消息信息的操作,将右边的聊天气泡向左拖动时,它将在另一个VC中显示消息信息。 我复制了此功能,并传递了要拖动到下一个VC的单元格的引用。 但是,当我回来时,该单元格消失了,而我通过的引用消失了,当上下滚动或刷新该表时,它再次出现。 为什么会发生这种