寫了個小應用,遇到了點擊空白處不能關閉鍵盤的問題以及切換view會致使home頁面先上去再下來的問題。把解決的辦法記下來app
主要使用了一個navigation。view也只有兩級。以下圖所示spa
遇到的問題是若是我設置了其中任一項參數以後沒有關閉鍵盤,而後直接點擊左上角的「back」,就會出現home view先填充滿整個view,而後又被navigation的navigationbar擠下來了。爲了解決掉這個問題,要麼在切換以前把鍵盤關掉,也得實現點擊空白處就能關閉鍵盤。那麼下面就是代碼code
切換前關閉鍵盤orm
要切換view,那麼原來的view確定會先調用方法viewWillDisappear,那咱們就在調用該方法的時候把鍵盤關掉,那麼切換過去的時候鍵盤就已經處於關閉狀態了。從新實現viewWillDisappear以下:ip
-(void)viewWillDisappear:(BOOL)animated{ [self IsValidToPop]; [super viewWillAppear:animated]; [self.view endEditing:YES]; }
其中IsValidToPop是在切換的時候判斷當前設置完的參數的有效性,並保存參數到NSUserDefault中get
2. 點擊空白處關閉鍵盤it
在ViewDidLoad方法中添加以下代碼,就能夠實現了io
UITapGestureRecognizer *tapGr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)]; tapGr.cancelsTouchesInView = NO; [self.view addGestureRecognizer:tapGr];
viewTapped是本身定義的方法
class
-(void)viewTapped:(UITapGestureRecognizer*)tapGr { [ipText resignFirstResponder]; [portText resignFirstResponder]; [bufferText resignFirstResponder]; [self IsValidToPop]; }
主要功能就是讓當前view裏面全部的text窗口都交出第一響應的權限。而後校驗參數並保存。select