Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何将TextField值从一个视图传递到任何其他视图xcode_Iphone_Xcode - Fatal编程技术网

Iphone 如何将TextField值从一个视图传递到任何其他视图xcode

Iphone 如何将TextField值从一个视图传递到任何其他视图xcode,iphone,xcode,Iphone,Xcode,我必须将UITextField值从一个视图传递到其他视图(第二、第三…视图)。实际上,在我的第三个ViewController中,我有一个scrollView,并且我必须在其上显示值。但是UITextField值没有被传递。它返回null。无法获取可能出错的内容? 这是我正在使用的代码: In ViewController1.m: -(IBAction)butonclick:(id)sender{ ViewController2 *view2=[ViewController2 alloc];

我必须将UITextField值从一个视图传递到其他视图(第二、第三…视图)。实际上,在我的第三个ViewController中,我有一个scrollView,并且我必须在其上显示值。但是UITextField值没有被传递。它返回null。无法获取可能出错的内容? 这是我正在使用的代码:

In ViewController1.m:

-(IBAction)butonclick:(id)sender{
ViewController2 *view2=[ViewController2 alloc];
view2.id=name.text; 
ViewController3 *view3=[ViewController3 alloc];
view3.id=name.text; 
[view2 release];
[view3 release];
}


IN ViewConroller2.h :
@interface ViewController2 : UIViewController { 
   NSString *id;
   UIlabel *displayId;
}

In ViewController2.m :
- (void)viewDidLoad
{
 self.displayId.text=self.id;
}

In ViewController3.h:
@interface ViewController2 : UIViewController { 
  NSString *id;
  UIlabel *dispId;
 }  

In ViewController3.m :
- (void)viewDidLoad
{
self.dispId.text=self.id;
}

但是在这里,id值没有传递给ViewController3。它返回null。哪里出了问题?

AppDelegate.h
中全局声明字符串这将有助于在整个文件中保持字符串的值不变。此外,无论您要在何处添加字符串或更改其值或为其赋值,请导入
AppDelegate.h

同时检查以下链接:-


您正在传递值而不进行初始化

ViewController2 *view2=[[ViewController2 alloc]init];
view2.id=name.text; 
ViewController3 *view3=[[ViewController3 alloc]init];
view3.id=name.text; 
如果要在应用程序中全局使用对象,可以在appDelegate中声明它

在AppDelegate.h中

 @interface AppDelegate : NSObject <NSApplicationDelegate>
    {
         NSString *idGlobal;
    }
    @property (nonatomic, retain) NSString *idGlobal;

我正在修改您编写的代码,同时上面给出的关于使用AppDelegate属性的建议是一个很好的建议。 代码的主要问题是,您只是声明NSString对象,而不是将其作为属性。选中此项:

-(IBAction)butonclick:(id)sender{
ViewController2 *view2=[ViewController2 alloc]init];
view2.str=name.text; 
ViewController3 *view3=[ViewController3 alloc]init;
view3.str=name.text; 
[view2 release];
[view3 release];
}


IN ViewConroller2.h :
@interface ViewController2 : UIViewController { 
   NSString *str;
   UIlabel *displayId;
}
@property(nonatomic, retain) NSString* str; //Synthesize it in .m file

In ViewController2.m :
- (void)viewDidLoad
{
 self.displayId.text=self.str;
}

In ViewController3.h:
@interface ViewController2 : UIViewController { 
  NSString *str;
  UIlabel *dispId;
 }  
    @property(nonatomic, retain) NSString* str; //Synthesize it in .m file

In ViewController3.m :
- (void)viewDidLoad
{
self.dispId.text=self.str;
}

我不了解您的情况,但实施此类情况的最有效方法是使用代理。为设置字符串的类(ViewController1)创建一个委托,并在其他视图控制器中相应地设置委托

如何显示视图2和视图3?请在app delegate中声明字符串并使用它!!我认为这比使用oneview2是UIview更好,在其中我使用UITableView,view3是UIview,我使用UIScroolView并显示TableView、UITextFields,UILabels在上面。我该怎么做?你能简单地解释一下我必须在Appdelegate.h中声明哪个字符串吗?但是我有一个UItextField,我必须在第三视图中传递它。在Appdelegate.h中声明任何NSString,然后将其用作缓冲区,将值从一个类传递到另一个类。您可以从UITextField中获取值,如textfield.text=String;但是声明NSString字符串;在Appdelegate.h中之前,我的意思是我必须在Appdelegate.h中声明id和idGlobal?我的意思是在Appdelegate中声明idGlobal。查看我的更新答案。嘿,我做了与你所说的相同的操作,但在这一行得到了错误“预期标识符”或“(”:id=appDelegate.idGlobal;你能告诉我y吗?NSString*myStr=appDelegate.idGlobal;不要用“id”来声明变量。因为“id”是一种数据类型。谢谢你的帮助。明白了吗
-(IBAction)butonclick:(id)sender{
ViewController2 *view2=[ViewController2 alloc]init];
view2.str=name.text; 
ViewController3 *view3=[ViewController3 alloc]init;
view3.str=name.text; 
[view2 release];
[view3 release];
}


IN ViewConroller2.h :
@interface ViewController2 : UIViewController { 
   NSString *str;
   UIlabel *displayId;
}
@property(nonatomic, retain) NSString* str; //Synthesize it in .m file

In ViewController2.m :
- (void)viewDidLoad
{
 self.displayId.text=self.str;
}

In ViewController3.h:
@interface ViewController2 : UIViewController { 
  NSString *str;
  UIlabel *dispId;
 }  
    @property(nonatomic, retain) NSString* str; //Synthesize it in .m file

In ViewController3.m :
- (void)viewDidLoad
{
self.dispId.text=self.str;
}