Tôi đang sử dụng iPhone SDK 3.1.3. Tôi có một số UITableViewController
nhận dữ liệu từ một bộ điều khiển khác. Chế độ xem bảng được thêm dưới dạng chế độ xem phụ vào chế độ xem chính nhưng khung được đặt để không hiển thị. Khung xem bảng được cập nhật và được thực hiện để trượt qua chế độ xem chính bằng cách nhấn vào nút.Cuộn UITableView đến vị trí cụ thể
Chế độ xem bảng xuất hiện và tôi cuộn đến hàng cuối cùng. Nếu tôi chọn hàng cuối cùng, tôi tải lại bảng với nhiều dữ liệu hơn. Bảng được cập nhật với nhiều dữ liệu hơn. Mọi thứ hoạt động tốt ngoại trừ vị trí cuộn luôn ở trên cùng.
Tôi cần vị trí cuộn là hàng cuối cùng mà tôi đã nhấp vào để tải thêm dữ liệu. Tôi lưu vị trí cuộn và gọi mã sau đây sau khi tải thêm dữ liệu. Nó thực hiện mà không có vấn đề nhưng vị trí di chuyển luôn luôn là đầu trang.
[theTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:savedScrollPosition inSection:0] atScrollPosition:savedScrollPosition animated:NO];
Điều trên dường như không có hiệu lực. ViewWillAppear:
ViewDidAppear:
không kích hoạt và tôi được thông báo rằng nếu bộ điều khiển chế độ xem được khởi tạo trong mã, trường hợp này không kích hoạt. Xin vui lòng giúp tôi tìm ra cách và khi nào để thiết lập vị trí di chuyển sau khi bảng được tải lại ([theTableView reloadData]
) để nó ở hàng mà tôi nhấp vào.
Mã để Nạp lại bảng điểm & cuộn
////performAction will notify the tableviewcontroller which will result in didPerformAction being called
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == lastRow)
{
savedScrollPosition = lastRow;
//perform the action
[controller performAction];
}
}
- (void) didPerformAction:(NSNotification *)obj
{
[theTableView reloadData];
[theTableView
scrollToRowAtIndexPath: [NSIndexPath indexPathForRow:savedScrollPosition inSection:0]
atScrollPosition:UITableViewScrollPositionBottom
animated:NO];
}
những gì được lưuScrollPosition trong tuyên bố này –