【问题标题】:how to properly show / hide UIView on button click in iOS如何在iOS中单击按钮时正确显示/隐藏UIView
【发布时间】:2014-04-09 06:16:59
【问题描述】:

我有一个UIView,已添加到我的 xib 文件中。通过连接检查器正确加入。

viewDidLoad: 方法中,我将其隐藏并在按下的某个按钮上显示它。

到目前为止,这是我的代码:

.h 文件

@property (nonatomic, retain) IBOutlet UIView   *subView;

viewDidLoad:方法中:

_subView.hidden = YES;

它正确地隐藏了这个视图,但是按下按钮时它没有显示出来。

- (IBAction)customerInvoice:(id)sender
{
//self->_subView.hidden = NO;
_subView.hidden = NO;
}

使用两种方式都不会显示。请帮我解决它。

【问题讨论】:

  • 您确定 customerInvoice: 按下按钮时触发了操作吗?添加 NSLog 以确保它被触发。
  • 您也可以在事件处理程序中放置一个断点,以检查代码是否被命中。这也将允许您检查 _subView 的值,以防由于某种原因它是或已经变为 nil。
  • @Greg 是的,我检查了这个
  • @Stuart 你在说什么,它应该是 nil 还是不?
  • _subView UIView * 0x08c30630 ....设置断点并给出这个值

标签: ios iphone objective-c ipad uiview


【解决方案1】:

有时您(或 xCode)在连接 IBOutlets/IBAction 时可能会出错,因此如果它不起作用,您可以删除连接并重新连接,这应该会有所帮助。

Apple 还建议对 IBOutlet 属性使用弱而不是强/保留,所以如果你没有充分的理由,你应该这样做:

@property (nonatomic, weak) IBOutlet UIView *subView;

【讨论】:

    【解决方案2】:

    第一次声明视图:

      @property (weak, nonatomic) IBOutlet UIView *select_image_uiview;
    

    按钮点击动作:

       - (IBAction)cancel_choose_view:(id)sender
     {
        _select_image_uiview.hidden=YES;
       }
    

    【讨论】:

      猜你喜欢
      • 2013-04-24
      • 1970-01-01
      • 2018-03-17
      • 2016-05-21
      • 1970-01-01
      • 2013-01-16
      • 1970-01-01
      • 2016-02-10
      • 1970-01-01
      相关资源
      最近更新 更多