[英]Use UISegmentedControl to switch to a MKMapView and UITableView
我正在制作一個應用程序,我有一個帶有UISegmentedControl的視圖控制器,並且想在MKMapView和UITableView之間切換。 在MKMapView中,我想顯示一個帶有用戶當前位置的地圖,在TableView中,我想列出一些數據。 而已。
聽起來很簡單,但是我不知道該如何進行,我試圖將視圖控制器設置為tableview控制器,然后添加MKMapview,還嘗試僅添加視圖和簡單的視圖控制器。 無論如何,有正確或更好的方法嗎?
多謝你們!
您可以使用target-action來使分段控件隱藏一個視圖,並在更改其值時取消隱藏另一個視圖:
- (void)segmentChanged:(id)sender
{
switch ([sender selectedSegmentIndex]) {
case 0:
{
self.tableView.hidden = NO;
self.mapView.hidden = YES;
break;
}
case 1:
{
self.tableView.hidden = YES;
self.mapView.hidden = NO;
break;
}
default:
break;
}
}
將兩者都添加為subview
然后只要您想切換就可以
[self.view bringSubviewToFront:YOURVIEW];
干凈的方法是在按下按鈕后立即切換子視圖。
[view1 removeFromSuperView];
[self.view addSubview: view2];
為了獲得更好的性能,可以將兩個視圖都保存為成員變量,這樣就不會每次都實例化它們。
這樣,您甚至可以添加一個Viewtransition。 (例如翻轉或褪色)
同樣在iOS5中,您可以編寫自己的ViewControllerContainer。 但這對於該任務來說太復雜了。
我將使用2 navigationControllers。
照常聲明您的第一個NavigationController,然后在用戶點擊segmentedControl時,使用另一個navigationController創建tableController,並將其顯示為modalViewController。
UINavigationController* modalController = [[UINavigationController alloc] initWithRootViewController:tableViewController];
[modalController setToolbarHidden:NO];
[self.navigationController presentModalViewController:modalController animated:YES];
[modalController release];
然后,當用戶點擊tableViewController的分段控件時,只需關閉viewController。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.