我有一个简单的应用程序,我想通过按钮传递数据到另一个视图控制器没有延续到它。 SO基本上在一个视图控制器上我有一个文本框,用户在那里输入名称,当他们按下提交按钮时,我希望他们的名字传递给另一个包含标签的视图控制器,但不导航到该视图,停留在视图控制器上有提交按钮传递数据到另一个视图控制器与IBAction没有赛格快速
这是我的按钮IBAction为提交数据:按下提交按钮时
@IBAction func addPlant(sender: AnyObject)
{
}
我有一个简单的应用程序,我想通过按钮传递数据到另一个视图控制器没有延续到它。 SO基本上在一个视图控制器上我有一个文本框,用户在那里输入名称,当他们按下提交按钮时,我希望他们的名字传递给另一个包含标签的视图控制器,但不导航到该视图,停留在视图控制器上有提交按钮传递数据到另一个视图控制器与IBAction没有赛格快速
这是我的按钮IBAction为提交数据:按下提交按钮时
@IBAction func addPlant(sender: AnyObject)
{
}
,即可故事的用户名进入,所有控制器可以得到它,如UserDefault,SQLit。
#import "ViewController.h"
@interface ViewController()
//where the user enters name
@property (weak, nonatomic) IBOutlet UITextField *userNameTF;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (IBAction)submit:(id)sender {
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
/**
* story the userName into NSUserDefaults
*/
[userDefaults setObject:self.userNameTF.text forKey:@"userName"];
//if ios8 need:
[userDefaults synchronize];
}
@end
另一个视图控制器
#import "OtherViewController.h"
@interface OtherViewController()
@property (weak, nonatomic) IBOutlet UILabel *userNameLabel;
@end
@implementation OtherViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
//get the userName from NSUserDefaults
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
self.userNameLabel.text = [userDefaults objectForKey:@"userName"];
}
@end
夫特版------------------------------- - 的ViewController:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var userNameTF: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
@IBAction func addPlant(sender: AnyObject) {
let userDefaults = NSUserDefaults.standardUserDefaults();
/**
* story the userName into NSUserDefaults
*/
userDefaults.setObject(userNameTF.text, forKey:"userName");
//if iOS8 before need:
userDefaults.synchronize();
}
}
OtherViewController:
import UIKit
class OtherViewController: UIViewController {
@IBOutlet weak var userNameLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
let userDefaults = NSUserDefaults.standardUserDefaults();
//get the userName from NSUserDefaults
self.userNameLabel.text = userDefaults.objectForKey("userName") as? String;
}
}
谢谢你,请问有没有快捷版? – user4682589
好的,我将添加一个快速的顶点 – xiaoyungo
谢谢,我将如何使用userDefaults填充tableviewcell? – user4682589
你可以使用代表来实现这一点。
你使用的是swift还是objective-c?
的一般步骤来创建代表们
它不是完全清楚你实际上要做的实现协议。其他视图控制器是否已经存在?也就是说,它在导航控制器的堆叠中还是在分体视图控制器的另一个面板中更高? –
@EricD。这不是重复的,因为它是在将数据传递给正在打开的VC,而不是使用segue来完成。这是关于不打开一个新的VC。 –
@EricD。也许......但仍然有很多假设(例如在创建具有“instantiateViewControllerWithIdentifier”的新视图控制器的情况下(并且可能没有将它保存起来,所以你实际上没有做任何事情)。真的没有足够的信息问题说他真的想要做什么:) –