簡體   English   中英

使用UISegmentedControl切換到MKMapView和UITableView

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM