2012-12-11 73 views
0

我無法從實現代碼如下推到詳細信息視圖。當我點擊tableview單元格時,單元格會高亮顯示但不會推送到詳細視圖。我使用這個過渡到詳細信息視圖:問題與self.navigationController和pushViewController

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

我已閱讀,這是一個常見的問題,但我不知何故無法找出一個解決方案。下面是我的完整.m文件。如果任何人有任何令人驚歎的建議。謝謝!

#import "ViewController.h" 
#import "DetailViewController.h" 
@interface ViewController() 
@end 

@implementation ViewController 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
self.title = @"title"; 

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 

NSURL *url = [NSURL URLWithString:@"http://website.com/json.php"]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
[[NSURLConnection alloc] initWithRequest:request delegate:self]; 
// Do any additional setup after loading the view, typically from a nib. 
} 

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 

news = [NSJSONSerialization JSONObjectWithData:data options:nil error:nil]; 
[mainTableView reloadData]; 
} 

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

- (int)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
return [news count]; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MainCell"]; 

if(cell == nil){ 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MainCell"]; 
} 

cell.textLabel.text = textForMyLabel; 
return cell; 
} 

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

UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"Back" style: UIBarButtonItemStyleBordered target: nil action: nil]; 

[[self navigationItem] setBackBarButtonItem: newBackButton]; 

DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil]; 
detailViewController.title = [[news objectAtIndex:indexPath.row] objectForKey:@"name"]; 
detailViewController.newsArticle = [news objectAtIndex:indexPath.row]; 
[self.navigationController pushViewController:detailViewController animated:YES]; 
} 
+1

你的viewController是否在'UINavigationController'本身? –

+0

@PranjalBikashDas,我不這麼認爲,我不太清楚如何檢查。我正在嘗試整合兩個項目,但並不確切知道要看什麼。 – Brandon

+0

您需要先爲導航控制器分配一個rootviewcontroller。那麼你只能推其他意見。 –

回答

0

嘗試:

[self presentModalViewController: detailViewController animated:YES]; 
+0

這是一個有趣的方式來做到這一點,但我想要它像一個正常的詳細視圖轉換 – Brandon

0

你可以用一個UINavigationController OLY進行推,如果您的控制器的UINavigationController上面的代碼將工作。由於你試圖整合兩個項目,只需檢查RootViewController是否是UINavigationController。

+0

我在哪裏檢查? – Brandon

+0

我會查看應用程序委託來查找RootViewController是什麼? – Brandon

+0

是在你的appdelegate –

相關問題