2015-06-11 63 views
0

我正在使用故事板將項目聚合到Swift中。舊版本是Objective-C,並沒有使用Storyboard。原始版本有許多ViewController,它們是CoreDataFetchedResultsViewController的子類。在CoreFetchedResultsViewController類中,我有一個用於許多方法的UITableView的屬性。下面是CoreFetchedResultsController超類中UITableView的聲明。通過故事板連接到超類屬性

@interface CoreDataFetchedResultsViewController : UIViewController <NSFetchedResultsControllerDelegate, UITableViewDataSource, UITableViewDelegate> 
@property (nonatomic, strong) UITableView *storyTableView; 

在該子類的CoreFetchedResultsViewController的ViewControllers,我創建了一個的tableView並將其設置爲CoreFetchedResultsViewController在viewDidLoadMethod的storyTableView財產。

@interface FLOViewController : CoreDataFetchedResultsViewController <FLODataHandlerDelegate, UIActionSheetDelegate> 

viewDidLoad中()從連接到CoreDataFetchedResultsViewController財產的tableView沒有崩潰的應用程序的FLOViewController類

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

     self.storyTableView = [[UITableView alloc] initWithFrame: CGRectMake(0, 44, 320.0f, 436.0f) style: UITableViewStylePlain]; 
     self.storyTableView.backgroundColor = [UIColor clearColor]; 
     self.storyTableView.rowHeight = 81; 
     self.storyTableView.separatorColor = [UIColor blackColor]; 
     [self.view addSubview: self.storyTableView]; 
     self.storyTableView.delegate = self; 
     self.storyTableView.dataSource = self; 
} 

隨着的tableView。

我使用故事板時發生故障。由於我將tableView放置在Storyboard中的FLOViewController中,因此我無法將它連接到超類CoreDataFetchedResultsViewController中的storyTableView屬性。

將Storyboard元素連接到超類屬性的最佳方式是什麼?你是否在子類中創建了一個插座,然後將該屬性設置爲超類屬性?

class FLOViewController 
{ 
@IBOutlet var floViewControllerTableView: UITableView! 

    override func viewDidLoad() 
    { 
     super.viewDidLoad() 
     self.storyTableView = self.floViewControllerTableView 
    } 
} 

這似乎工作,但似乎是錯誤的我。彷彿複製對象不是最好的主意。任何幫助,將不勝感激。

保重,

喬恩

回答

0

在超創建一個IBOutlet是什麼效果最好。這樣你可以直接將tableView連接到這個屬性。

保重,

喬恩