2011-05-18 75 views
0

我正在为iphone做一个客户端 - 服务器程序,我想用我的serverIP,这是我的第一个视图中的第二个视图的一部分serverIP是一个uitextfield。我用第二个视图输入ServerIP的值,但我想使用serverIP IN Firstview的值。在第一个视图中使用第二个视图的textfield

“” secondview.h “” 接口文件

#import <UIKit/UIKit.h> 


@interface secondview : UIViewController { 

    IBOutlet UIView *view; 
    IBOutlet UITextField *serverIP; 
    IBOutlet UITextField *noc; 
    IBOutlet UIButton *save; 
    IBOutlet UIButton *back; 
    IBOutlet UIButton *load; 
    IBOutlet UILabel *display1; 
} 

-(IBAction) back; 
-(IBAction) save; 
-(IBAction) load; 

@property (nonatomic,retain) IBOutlet UITextField *serverIP; 
@property (nonatomic,retain) IBOutlet UITextField *noc; 
@property (nonatomic , retain) IBOutlet UILabel *display1; 


@end 

“” secondview.m “” 实现文件

#import "secondview.h" 


@implementation secondview 


@synthesize serverIP,noc,display1; 


-(IBAction) save{ 

    [[NSUserDefaults standardUserDefaults] setInteger:serverIP forKey:@"save"]; 

    NSUserDefaults *myname = [NSUserDefaults standardUserDefaults]; 



    [serverIP resignFirstResponder]; 



} 

-(IBAction) load { 

    serverIP = [[NSUserDefaults standardUserDefaults] integerForKey:@"load"]; 

    NSUserDefaults *myname = [NSUserDefaults standardUserDefaults]; 





} 


-(IBAction) back { 

    [self.parentViewController dismissModalViewControllerAnimated: YES]; 
} 



- (void)dealloc { 
    [super dealloc]; 
} 


@end 

回答

1

serverIP是textField。你可以在它得到文本serverIp.text 所以,你可以在用户默认保存为

[[NSUserDefaults standardUserDefaults] setObject:serverIp.text forKey:@"save"]; 

你试图文本字段本身保存为用户默认的整数,这是不正确。

为了找回它,使用

NSString *serverIpString = [[NSUserDefaults standardUserDefaults] objectForKey:@"save"]; 
+0

@ pratikshabhisikar它不工作,它显示在加载函数警告“未使用的变量serveripstring – 2011-05-18 09:32:54

+0

Ofcourse它会说如果您从用户默认和检索它未使用的变量serveripString和什么都不用,问题是,你是否从用户默认值中获得了正确的serverip字符串? – 2011-05-19 11:08:03

0

这样做是为了节省:

[[NSUserDefaults standardUserDefaults] setObject:serverIP.text forKey:@"save"]; 

,并检索:

NSString *serverIPSTR = [[NSUserDefaults standardUserDefaults] objectForKey:@"load"]; 
+0

@朱利亚诺帽状发生冲突的东西我试过了,但它不起作用 – 2011-05-18 09:33:22

+0

你收到了什么错误?顺便说一下你发布的代码中存在的问题是: 你试图在NSUserDefaults中设置一个TextField(你不能这么做),并且也使用integerForKey(顾名思义)来存储整数。 – 2011-05-18 09:45:53

+0

@ giuliano galea我没有收到任何错误,但是当我加载时没有显示任何内容。 – 2011-05-18 09:53:36

0
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"load"] != nil) { 
    serverIP = [[NSUserDefaults standardUserDefaults] objectForKey:@"load"]; 
} else { 
    serverIP = @"Your default IP address"; 
    [[NSUserDefaults standardUserDefaults] setObject:serverIP ForKey:@"load"]; 
} 

而是 '负荷' 的,虽然我会用不太可能违约,如

myappname_serverip

相关问题