Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.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
ios access用户在xib中输入的值_Ios_Xib - Fatal编程技术网

ios access用户在xib中输入的值

ios access用户在xib中输入的值,ios,xib,Ios,Xib,我有一个xib文件,我正在从我的一个视图控制器实现文件调用它。以下是我用来实例化视图控制器并将其推送到导航堆栈上的代码:- upsertView=[[[NSBundle mainBundle] loadNibNamed:@"InsertView" owner:self options:NULL] lastObject]; UIViewController *vc=[[UIViewController alloc] init]; vc.view=upsertView; [self.navigati

我有一个xib文件,我正在从我的一个视图控制器实现文件调用它。以下是我用来实例化视图控制器并将其推送到导航堆栈上的代码:-

upsertView=[[[NSBundle mainBundle] loadNibNamed:@"InsertView" owner:self options:NULL] lastObject];
UIViewController *vc=[[UIViewController alloc] init];
vc.view=upsertView;
[self.navigationController pushViewController:vc animated:NO];
xib视图包含三个文本文件,用户可以在其中输入值并进行保存。此保存连接到同一控制器实现文件中的一个操作(从这里我调用xib)。行动如下:-

-(void) saveValues
{
    UIViewController *vc=[[self.navigationController viewControllers] lastObject];
    NSString *valID = ((UITextField *)[vc.view viewWithTag:23]).text;
    NSLog(@"%@",valID);
}
您能告诉我上述是否是从xib获取用户输入值的最佳方法吗?

几点建议

为了更安全起见,与其直接从函数
loadNibNamed:owner:options:
返回的数组中获取lastObject,不如在数组中迭代查看,然后选择正确的对象

也不建议使用带标签的视图。我个人在这方面有过一些不好的经历。苹果公司内部维护了一些视图的标签。因此,如果您的标记与此重叠,则很难解决


相反,您可以在控制器中维护文本字段的IBOutlets,使用它可以轻松获取数据

上述方法有效吗?是的。以上是整个代码的一个子集。但是,它正在打印valIDIn的值。一般来说,您的代码是正常的。您可以在viewController中为文本字段创建弱输出,并在保存方法中直接读取它们-这将使代码更干净