1. 程式人生 > >02 - 載入XIB(ViewController)後 View的子控制元件無響應中

02 - 載入XIB(ViewController)後 View的子控制元件無響應中

02 - 載入XIB(ViewController)後 View的子控制元件無響應中

問題描述

  • 前提 : 自定義XIB:包含若干個Button
  • 理想現象 : 用Button響應相關動作
  • 報錯reason : 無報錯
  • 解決方式 : 強引用XIB中的Controller / 將XIB中的Controller新增為當前控制器的自控制器

建立部分Code:

    BLColorSelectView * test = [[BLColorSelectView alloc]init]; //建立XIB檔案
    test.view.frame = self.view
.frame; [self.view addSubview:test.view];

分析:

XIB中的控制器因為沒被強引用,建立後即dealloc,當中的子控制元件操作無法響應
XIB中的控制器中的View被self.view引用,所以檢視正常

修改方法:

  • 新增為當前控制器子控制器
    [self addChildViewController:test]; //新增為當前控制器子控制器
  • 建立屬性強引用XIB中的Controller
    @property(nonatomic,strong) BLColorSelectView * test;    //建立屬性強引用XIB中的Controller
self.test = test

`