我有一个UIScrollView,我附加了多个包含UITextFields的自定义UIView ...
在每个文本字段中,我处理EditingChanged事件,以便我进行一些计算并将它们附加到UILabel ......
现在......在我的UIScrollView之外我有一个TextBox,我需要从自定义视图中的TextFields访问它...
我可以向上滚动层次结构并以某种方式通过它的标签找到该控件吗?我尝试过使用ParentViewController,但它始终为null。
任何帮助表示赞赏
答案 0 :(得分:1)
您应该可以使用.superview
属性将视图层次结构向上移动到顶层UIView
答案 1 :(得分:0)
UIScrollView外的TextBox是否在同一个UIViewController中?您应该使用控制器来管理通信。处理包含两个文本框的最低级别的EditingChanged。因此,如果它们位于相同的UIViewController中,请让它处理EditingChanged并同时引用文本框。
答案 2 :(得分:0)
或者您可以使用UIApplicationDelegate。
声明一个引用UISCrollView的实例,并将UIScrollView设置为该实例。
@interface YourAppDelegate { YourUIScrollView * yourScrollView; } @property(非原子,保留)YourUIScrollView * yourScrollView; @end
无论您想要访问滚动视图,都可以执行以下操作,
YouUIScrollView * yourScrollView =((YourAppDelegate *)[[UIApplication sharedapplication] delegate])。yourScrollView;
答案 3 :(得分:0)
您可以采用另一种方式,沿层次结构向下移动以获取较低UITextField
的值,并在UIScrollView
之外执行计算。您可以访问较低UITextField
的方法如下:
foreach (scrollView.ViewWithTag(tagNum).SubViews.OfType<UITextField>())
{
// get the value from the textfield then perform the required calculation
}
(这当然假设你已经给UIView
添加了标签。