我在視圖控制器內部有一個uitableview,在我的uitableview下面有一個按鈕。點擊此按鈕打開模式視圖。iOS Obj-C - UITableView數據在模態視圖消失時消失
modalview.m
- (IBAction)closeButton:(id)sender {
[self dismissViewControllerAnimated:YES completion:nil];
}
然而,當我點擊解僱我的模態視圖,所有的數據在我的UITableView:我用下面的代碼創建了我的語氣裏一個「關閉」按鈕似乎消失了(可用視圖變白了)?任何想法,爲什麼這可能是,我該如何解決它?這是我的tableview數據的加載方式和結構化(希望這有助於):
ViewController.m
-(void)updateMessages {
self.tableView.dataSource = self;
NSMutableDictionary *viewParams = [NSMutableDictionary new];
[viewParams setValue:@"name" forKey:@"view_name"];
[DIOSView viewGet:viewParams success:^(AFHTTPRequestOperation *operation, id responseObject) {
self.messages = (NSMutableArray *)responseObject;
[self.tableView reloadData];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Failure: %@", [error localizedDescription]);
}];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self updateMessages];
static NSString *ChatTableIdentifier = @"ChatTableViewCell";
static NSString *ChatTableIdentifier2 = @"SwapDetailTableViewCell";
UINib *nib = [UINib nibWithNibName: ChatTableIdentifier bundle:nil];
[self.tableView registerNib:nib forCellReuseIdentifier: ChatTableIdentifier];
UINib *nib2 = [UINib nibWithNibName: ChatTableIdentifier2 bundle:nil];
[self.tableView registerNib:nib2 forCellReuseIdentifier: ChatTableIdentifier2];
self.tableView.dataSource = self;
[self.tableView reloadData];
}
- (int)numberOfSectionsInTableView: (UITableView *)tableview
{
return 1;
}
- (int)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.messages count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSDictionary *data = self.messages[indexPath.row];
id swaptime = data[@"swaptime"];
if ([swaptime isKindOfClass:[NSString class]]) {
// There is a valid "swaptime" value
static NSString *ChatTableIdentifier2 = @"SwapDetailTableViewCell";
SwapDetailTableViewCell *cell = (SwapDetailTableViewCell *)[tableView dequeueReusableCellWithIdentifier:ChatTableIdentifier2 forIndexPath:indexPath];
NSString *time = data[@"swaptime"];
cell.startTime.text = time;
NSString *timeEnd = data[@"endswaptime"];
cell.endTime.text = timeEnd;
NSString *costofSwap = data[@"swapvalue"];
cell.swapValue.text = costofSwap;
NSString *fromUsername = data[@"first name"];
cell.fromUser.text = fromUsername;
NSString *pet = data[@"pet's name"];
cell.petsname.text = pet;
NSString *swapStatus = data[@"swapaccepted"];
if ([swapStatus isEqual: @"Yes"]) {
[cell.displayedBar setImage:[UIImage imageNamed:@"greenbar.png"]];
cell.swapTitle.text = @"Accepted!";}
else {
if ([swapStatus isEqual: @""]) {
[cell.displayedBar setImage:[UIImage imageNamed:@"orangecellbar.png"]];
cell.swapTitle.text = @"You have a Request!";}
if ([swapStatus isEqual: @"Requested"]) {
[cell.displayedBar setImage:[UIImage imageNamed:@"orangecellbar.png"]];
cell.swapTitle.text = @"You have a Request!";}
if ([swapStatus isEqual: @"Cancelled"]) {
[cell.displayedBar setImage:[UIImage imageNamed:@"blueecellbar.png"]];
cell.swapTitle.text = @"Cancelled!";}
if ([swapStatus isEqual: @"No"]) {
[cell.displayedBar setImage:[UIImage imageNamed:@"redbar.png"]];
cell.swapTitle.text = @"Declined!";
}
}
return cell;
} else {
static NSString *ChatTableIdentifier = @"ChatTableViewCell";
ChatTableViewCell *cell = (ChatTableViewCell *)[tableView dequeueReusableCellWithIdentifier:ChatTableIdentifier forIndexPath:indexPath];
NSString *userName = data[@"first name"];
cell.sendingUser.text = userName;
NSString *messageBody = data[@"body"];
cell.messageDisplayed.text = messageBody;
NSString *timeReceived = data[@"published at"];
cell.timeStamp.text = timeReceived;
NSString *userInfo = [self.userid objectForKey:@"first name"];
if ([cell.sendingUser.text isEqual: userInfo]) {
cell.messageDisplayed.textAlignment = NSTextAlignmentLeft;
cell.sendingUser.textAlignment = NSTextAlignmentLeft;
[cell.chatBubble setImage:[UIImage imageNamed:@"bubblegrey2.png"]];
} else {
cell.messageDisplayed.textAlignment = NSTextAlignmentRight;
cell.sendingUser.textAlignment = NSTextAlignmentRight;
[cell.chatBubble setImage:[UIImage imageNamed:@"bubbleorange2.png"]];
}
return cell;
}
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.tableView setContentOffset:CGPointMake(0, CGFLOAT_MAX)];
}
「viewWillAppear」或「viewDidAppear」中是否有任何內容?或者任何影響你的模態的tableView的東西?嘗試添加背景顏色到你的表格視圖,看看它是否仍然存在或者不見 – Tj3n
@ Tj3n請參閱上面的編輯viewDidAppear中的內容。我已經做到了這樣,當用戶登陸這個視圖時,它會自動滾動到tableview的底部。我使用的代碼會影響這個嗎? – Brittany
爲什麼將表視圖的內容偏移量設置爲如此大的值?這條線的目標是什麼? – rmaddy