[英]Changing back button text in navigation bar after the child view is pushed in
[英]“Back” button on Navigation Bar is disabled after view push
我正在通過表視圖的委托類MyClass
推送視圖控制器( DetailView
)。 MyClass
充當MasterView
的表視圖的委托。 我試圖從MyClass
的“ didSelectRowAtIndexPath:”方法中推送DetailView
,但每次按下DetailView
都將禁用導致返回MasterView
的后退按鈕。
我的推視圖的代碼:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (!detailViewController) {
detailViewController = [[DetailViewController alloc] init];
}
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate.navigationController pushViewController:detailViewController animated:YES];
}
代替[appDelegate.navigationController pushViewController:detailViewController animated:YES];
,請使用[self.navigationController pushViewController:detailViewController animated:YES];
。
聽起來appDelegate
的nav控制器是與MasterView
的實例不同的實例,這可以解釋奇怪的行為。
使用self.navigationController
將另一個視圖控制器推入MasterView
導航控制器堆棧的頂部。
聽起來您需要將推回您的MasterView。
您可以通過以下方式來做到這一點:在MyClass中設置一個協議,然后使用通知中心(通過多個視圖將其從MyClass委托到MasterView進行推回調用,從而產生一種奇怪的來回委派模式)。知道此推送正在發生),或者在初始化MyClass並將其用於推送時傳遞對MasterView的引用。
無論您選擇什么,嘗試使用AppDelegate的nav控制器肯定會給您帶來奇怪的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.