2012-01-04 37 views
6

Tôi có một bảng phân cảnh với thanh điều khiển tabbar. Một trong các thanh tab có một tableview và tôi muốn rằng khi người dùng gõ vào một hàng từ tableview mở một cái nhìn chi tiết. Vấn đề là khi tôi mở thanh tab xem chi tiết và thanh điều hướng ẩn ... Trong bảng phân cảnh, tôi tạo chế độ xem chi tiết làm bộ điều khiển chế độ xem mới, sau đó tôi tạo một tệp mới và gọi nó là lớp chế độ xem chi tiết.Làm cách nào để mở trình điều khiển chế độ xem từ didSelectRowAtIndexPath trong bảng phân cảnh?

Các mã trong didselectrowatindexpath:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

detalleYouTube *dvController = [[detalleYouTube alloc] init]; 

[self.navigationController pushViewController:dvController animated:YES]; 

} 

Cảm ơn bạn trước!

Trả lời

3

Tôi cho rằng bạn có chế độ xem 'Chi tiết' như một phần của bảng phân cảnh (không phải trong một XIB riêng biệt), nếu vậy bạn sẽ cần đặt một NavigationController riêng biệt ở đầu phần 'Chi tiết' TabBarItem seque.

Trang này có một hướng dẫn tốt về những gì tôi nghĩ cố gắng của bạn để đạt được: http://maybelost.com/2011/10/tutorial-storyboard-in-xcode-4-2-with-navigation-controller-and-tabbar-controller-part1/

Cũng kiểm tra các liên kết đến một sâu hơn Storyboard hướng dẫn:

http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1

http://www.raywenderlich.com/5191/beginning-storyboards-in-ios-5-part-2

5

Một cách tiếp cận khác là không sử dụng tableView: didSelectRowAtIndexPath nhưng thay vào đó hãy sử dụng preparForSegue: người gửi

cách tôi đã làm nó là:

-(void)prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender 
{ 
    DetailViewController *viewController = [segue destinationViewController]; 
    CustomObject *custObject = [arrayOfObjects objectAtIndex:[self.tableView indexPathForSelectedRow].row]; 
    viewController.objectNeeded = custObject; 
} 

dụ này được dựa trên ý tưởng rằng điều khiển xem chi tiết của bạn được kết nối với bộ điều khiển xem bảng của bạn.

6

Đây là kinda cũ nhưng nếu ai đó cần phải làm điều này, đây là một cách tiếp cận dễ dàng:

Bạn có thể sử dụng thêm một segue từ quan điểm trên thanh tab để detalleYouTube, đặt một định danh cho segue và làm như sau:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
[self performSegueWithIdentifier:@"segueIdentifier" sender:tableView]; 
} 
Các vấn đề liên quan