从自定义视图中的UITextFields访问ParentViewController

时间:2011-02-01 02:56:32

标签: iphone ios xamarin.ios

我有一个UIScrollView,我附加了多个包含UITextFields的自定义UIView ...

在每个文本字段中,我处理EditingChanged事件,以便我进行一些计算并将它们附加到UILabel ......

现在......在我的UIScrollView之外我有一个TextBox,我需要从自定义视图中的TextFields访问它...

我可以向上滚动层次结构并以某种方式通过它的标签找到该控件吗?我尝试过使用ParentViewController,但它始终为null。

任何帮助表示赞赏

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

UIScrollView外的TextBox是否在同一个UIViewController中?您应该使用控制器来管理通信。处理包含两个文本框的最低级别的EditingChanged。因此,如果它们位于相同的UIViewController中,请让它处理EditingChanged并同时引用文本框。

答案 2 :(得分:0)

或者您可以使用UIApplicationDelegate。

  1. 声明一个引用UISCrollView的实例,并将UIScrollView设置为该实例。

    @interface YourAppDelegate {     YourUIScrollView * yourScrollView; } @property(非原子,保留)YourUIScrollView * yourScrollView; @end

  2. 无论您想要访问滚动视图,都可以执行以下操作,

    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添加了标签。