[英]Mapbox selectAnnotation doesn't work in ViewDidLoad or first time in ViewDidAppear
[英]What method is called when UITabBarController shows first tab on screen? viewDidAppear doesn't work
我在情節UITabBarController
中將UITabBarController
用作“是初始視圖控制器”。 當它出現在屏幕上時,最左邊的選項卡的視圖也隨之出現。 在所述選項卡的控制器的實現中,我有以下方法:
- (void)viewDidAppear:(BOOL)animated {
NSLog(@"view controller - first tab - appeared");
}
僅當我手動切換到第一個標簽時才調用,而不是在第一次加載時調用。
我的問題是-在首次加載應用程序時,第一個標簽的控制器中調用了哪種方法?
當第一個選項卡出現在屏幕上時,會調用viewDidLoad
,一切都很好,但是只有手動更改選項卡后, viewDidAppear
才會被調用。 其他選項卡首次出現時,則同時調用viewDidLoad
和 viewDidAppear
方法。
嘗試
-(void)viewDidLoad
{
[super viewDidLoad]
NSLog(@"view controller - first tab - appeared");
}
問題在於您要嘗試使用該方法,因為它處於生命周期的不同部分。
我有一張桌子,該桌子的附件標記根據模型而打開和關閉。 在viewDidLoad
,該表會自動放入所有選中標記(這是默認設置)。
基本上我改變accessoryType
的細胞中,它們最初顯示我的更改被覆蓋了。 在viewDidAppear
我瀏覽了數據並進行了更改。 由於從未調用此方法,因此第一個選項卡屏幕始終不正確。
我可以通過在所有選項卡上使用viewDidAppear
和UITableViewDelegate
方法來解決此問題:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
首次顯示標簽視圖時設置附件類型
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.