【问题标题】:How to Reload UIViewController data of UIVIew如何重新加载 UIVIew 的 UIViewController 数据
【发布时间】:2012-12-24 18:45:56
【问题描述】:

如何从UIView 重新加载UIVIewcontroller 的数据。实际上我有一个UIVIewController,它的自定义类类为UIView。现在在UIViewcontroller 我有一个标签,我需要打印在UIView 中定义的标签值。 但是UIViewControllerviewdidload首先被编译然后编译器移动到UIView。那么我该如何打印或重新加载UIVIewController

UILabel Text 我已经在UIViewControllerViewDidLoad 中定义了,值取自UIView

那么我该如何重新加载UIViewController

我正在做的是:

UIVIewController(thirdTab) 类

-(void)viewDidLoad{

 [self reloadInputViews1];

    }



-(void)reloadInputViews1{

appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
//  labelPrint.text=appDelegate.dayPrint;

[self.labelPrint setText:labelPrint.text];

}

UIView

- (void)drawRect:(CGRect)rect {

AppDelegate* appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    appDelegate.dayPrint=theDate;
    NSLog(@"appde%@",appDelegate.dayPrint);
    [appDelegate.thirdTab reloadInputViews1];
 }

但这不起作用...我无法在标签中打印值。如何做到这一点..从 UIViews 获取值

【问题讨论】:

    标签: iphone ios uiview uiviewcontroller reload


    【解决方案1】:

    你可以在你的视图上调用setNeedsDisplay 来强制重绘它。但我不确定这是不是最好的解决方案,事实上,您可以直接在您的控制器上调用reloadInputViews1,而不是在您的视图上调用reloadInputViews1,它会是一样的(实际上,它会更好) .

    除此之外,我认为您当前的设计不是很干净。我建议您在视图和控制器之间定义一个委托协议,以使这种关系更加明确。

    【讨论】:

    • 谢谢..但我不认为..在我的情况下定义委托协议会起作用 bcz uiviewcontroller 方法首先被调用....然后 uiview 被调用...我想要从 uiviewcontroller 打印标签文本,其值在 UiView 中定义
    • 正如我所说,使用setNeedsDisplay 强制重绘您的视图。如果这不会触发无限循环,那就没问题了。
    • 嘿,我在 UIVIew [self.window setNeedsDisplay] 和 UIViewcontroller ViewWillAppear 中做了什么我标签打印..它工作正常
    • 你能消除我对setNeedsDisplay调用只调用ViewWillAppear方法的疑问吗??
    • setNeedsDisplay 将触发您将其发送到的视图的drawRect: 方法。
    猜你喜欢
    • 1970-01-01
    • 2015-11-05
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    相关资源
    最近更新 更多