2017-07-08 79 views
0

我有我的tableView,一個BarButtonItem顯示我這個報警控制器:Objc - UIAlertController按鈕細胞添加到TableView中

UIAlertController * alertController = [UIAlertController alertControllerWithTitle: @"Feed RSS: info?" 
                      message: @"" 
                    preferredStyle:UIAlertControllerStyleAlert]; 

[alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) { 
    textField.placeholder = @"Feed URL"; 
    textField.clearButtonMode = UITextFieldViewModeWhileEditing; 
    textField.borderStyle = UITextBorderStyleRoundedRect; 
}]; 

[alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) { 
    textField.placeholder = @"Feed Title"; 
    textField.clearButtonMode = UITextFieldViewModeWhileEditing; 
    textField.borderStyle = UITextBorderStyleRoundedRect; 
}]; 

[alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) { 
    textField.placeholder = @"Feed category"; 
    textField.clearButtonMode = UITextFieldViewModeWhileEditing; 
    textField.borderStyle = UITextBorderStyleRoundedRect; 

}]; 
[alertController addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { 

    NSArray * textfields = alertController.textFields; 

    UITextField * urlfield = textfields[0]; 
    UITextField * titlefield = textfields[1]; 
    UITextField * categoryfield = textfields[2]; 

}]]; 

[self presentViewController:alertController animated:YES completion:nil]; 

現在,我想說的是,當我按下「確定」,在警報控制器,其中一個文本字段的文本寫入tableview的第一個單元格中。接下來,如果我輸入其他數據,我將不得不出現在tableview的第二個單元格中,依此類推。

根據你的,我應該怎麼辦呢? 我必須修改這部分嗎?

[alertController addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { 

謝謝!

+0

補充細胞生成的代碼。然後,我可以添加答案顯然 – Subramanian

+0

@Subramanian我對細胞產生任何代碼,因爲我無法創建它。當我點擊'OK'按鈕時,必須創建單元格,現在我只有一個空的動態tableView – Taprolano

回答

1

創建一個模型類,以節省用戶的報警控制器的文本框輸入的數據。

@interface FeedInfo : NSObject 
    @property (nonatomic,strong) NSString *feedURL; 
    @property (nonatomic,strong) NSString *feedTitle; 
    @property (nonatomic,strong) NSString *feedCategory; 
@end 

完成後,創建一個NSMutableArray持有由用戶輸入的多個進料信息。在您的TableViewController中編寫

@interface ViewController() 
@property(nonatomic,strong) NSMutableArray *feedArray; 
@end 

現在修改警報控制器的OK動作,以在FeedArray中創建一個條目。

[alertController addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { 

     NSArray * textfields = alertController.textFields; 

     UITextField * urlfield = textfields[0]; 
     UITextField * titlefield = textfields[1]; 
     UITextField * categoryfield = textfields[2]; 

     FeedInfo *newFeed = [[FeedInfo alloc] init]; 
     newFeed.feedURL = urlfield.text; 
     newFeed.feedTitle = titlefield.text; 
     newFeed.feedCategory = categoryfield.text; 


     [self.feedArray addObject:newFeed]; 
     [self.tableView reloadData]; 
    }]]; 

一旦條目添加到陣列使用[self.tableView reloadData];重新加載的tableView如上所示。

實施的UITableView的代表和數據源,如下。

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    return 1; 
} 

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return self.feedArray.count; 
} 

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    YourCellSubclass *cell = [self.tableView dequeueReusableCellWithIdentifier:@"your_cell_identifier"]; 
    FeedInfo *feedToShow = [self.feedArray objectAtIndex:indexPath.row]; 
    cell.feedTitle.text = feedToShow.feedTitle; 
    return cell; 
} 

使用您創建的FeedArray作爲tableView數據源。在cellForRowAt索引路徑中訪問相應的FeedObject並填充UITableViewCell的字段。

您可以使用默認的單元格或使用您自己的自定義單元格。這就是你需要的。如果您有任何疑問,如何加載自定義單元格ü可以參考 How to load custom cell (xib) in UICollectionView cell using swift

+0

cell.feedTitle.text = feedToShow.feedTitle;不起作用! :( – Taprolano