2011-06-23 89 views
0

是否有可能從iPhone的用戶界面開始/停止位置更新?我需要的應用程序是向我展示我的位置,除非我點擊「停止」然後再次「開始」。停止iphone UI的位置更新?

我似乎無法做到這一點......我有我的位置正確顯示,並且我還創建了兩個IBButton併爲它們中的每一個創建了一個函數,但是,當我單擊每個時,我的應用崩潰其中一個按鈕。我把這些功能放在viewcontroller.m下面。

我對此有點新,所以任何幫助將不勝感激。謝謝!

  • (IBAction爲)startUpdating:(CLLocation *)位置 {

    [位置startUpdatingLocation];

    }

  • (IBAction爲)stopUpdating:(CLLocation *)位置 {

    [位置stopUpdatingLocation];

    }

回答

2

開始/ stopUpdatingLocation是CLLocationManager實例方法,而不是CLLocation實例的方法......所以創建一個CLLocationManager實例。

.H

@interface someClass:somesuperclass{ 
CLLocationManager * locationManager; 
BOOL updating; 
} 
-(IBAction)toggleUpdating:(id)sender; 

@end 

.M某處視圖負載/或init週期:

-(void)viewDidLoad{ 
    [super viewDidLoad]; 
    locationManager = [[CLLocationManager alloc] init]; 
} 
-(void)viewDidUnload{ 
[locationManager stopUpdatingLocation]; 
[locationManager release]; 
[super viewDidUnload]; 
} 

-(IBAction)toggleUpdating:(id)sender 
{ 
    if(!updating) 
    { 
     [locationManager startUpdatingLocation]; 
    }else{ 
     [locationManager stopUpdatingLocation]; 
    } 
    updating = !updating; 
} 

也是你的行動上面不會有任何效果,因爲在一個動作一個冒號後的東西會是發送動作的對象,在你的情況下是一個UIButton。

+0

謝謝,這真的很有幫助!儘管有兩個簡單的問題:1.我應該在哪裏放置所有這些代碼?把它寫在視圖控制器中可以嗎?我把它放在viewDidLoad方法中,它不會編譯......另外:2)如何將啓動/停止UIBUttons與這個實現結合起來?我想用兩個按鈕來獲得用戶輸入:開始/停止。謝謝! – TommyG

+0

我改變了一點,以便更清楚。您可以使用一個按鈕並根據「更新」更改按鈕的名稱,或將邏輯分成2個操作。或者將UIButtons的標記設置爲0和1,然後檢查sender.tag以查看哪個按鈕發送了該操作,但您有幾個選項。 –

+0

謝謝!所以我結束了這樣做 - (IBAction)startUpdating { CLLocationManager * locationManager = [[CLLocationManager alloc] init]; [locationManager startUpdatingLocation]; } - (IBAction爲)stopUpdating { CLLocationManager *的LocationManager = [[CLLocationManager的alloc] INIT]; [locationManager stopUpdatingLocation]; } 有了兩個IBButton,但現在當我點擊Stop時,它進入了這個方法,但我一直在我的控制檯上獲取位置更新...... stopUpdatingLocation是真的停止還是我在這裏錯過了什麼? – TommyG

相關問題