一句話筆記(31)(presentingViewController)

一句話筆記续搀,某段時(shí)間內(nèi)遇到或看到的某個(gè)可記錄的點(diǎn)许赃。 2017-10-18

  • iOS 連續(xù)多次 Present 之后跟压,回到最初的viewController
  • iOS 連續(xù)兩次 Present 時(shí)出現(xiàn)的問(wèn)題
  • iOS 中 GET 請(qǐng)求中,某些特殊字符的處理
一塞茅、 iOS 連續(xù)多次 Present 之后亩码,回到最初的ViewController
  • 1、當(dāng)然是一個(gè)個(gè) DismissViewController 啦

通過(guò)代理或者 Block 去返回上一級(jí)的 VC野瘦,從而達(dá)到效果描沟。

  • 2飒泻、或者說(shuō)利用 presentingViewController 屬性來(lái)完成的。
[self.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];

當(dāng)然這個(gè)是可以優(yōu)化下的

UIViewController *viewController = self;
while (viewController.presentingViewController) {
      viewController = viewController.presentingViewController;
}
[viewController dismissViewControllerAnimated:YES completion:nil];

注意對(duì) 下面兩個(gè)屬性理解下:

// The view controller that was presented by this view controller or its nearest ancestor.
@property(nullable, nonatomic,readonly) UIViewController *presentedViewController  NS_AVAILABLE_IOS(5_0);

// The view controller that presented this view controller (or its farthest ancestor.)
@property(nullable, nonatomic,readonly) UIViewController *presentingViewController NS_AVAILABLE_IOS(5_0);

舉例:

[firstVC presentViewController:secondVC animated:NO completion:nil];

firstVC 的 presentedViewController 就是 secondVC.
secondVC 的 presentingViewController 就是 firstVC.

所以常規(guī)下吏廉,我們用方法二就可以啦泞遗,但是我們卻是用的是 方法一,因?yàn)槲覀兊?PresentVC 都是通過(guò) initWithRootViewController 的方式席覆,所以方法二不符合史辙。

二、 iOS 連續(xù)兩次 Present 時(shí)出現(xiàn)的視圖BUG
錯(cuò)誤顯示

上面是我們一個(gè) UIAlertController , 出現(xiàn)這個(gè)原因是佩伤,在一個(gè) VC 中連續(xù) Present 兩個(gè)VC聊倔。

 [self presentViewController:alertVC animated:NO completion:nil];
 [self presentViewController:testVC animated:NO completion:nil];

在 dismiss testVC 之后就變成這個(gè)樣子啦,所以就是連續(xù)的生巡,當(dāng)然這種情況不是故意的耙蔑,是某種情況下特殊觸發(fā)的。

所以解決這個(gè)問(wèn)題的方法障斋,可以直接在這個(gè)觸發(fā)出做出判斷或者重寫(xiě) presentViewController 這個(gè)方法

if (self.presentingViewController) {
       return;
}

哈哈纵潦,還是用 presentingViewController 屬性。

三垃环、 iOS 中 GET 請(qǐng)求中邀层,某些特殊字符(?!@#$^&%*+,:;='"`<>()[]{}/\| )的轉(zhuǎn)義處理。

在 GET 請(qǐng)求中遂庄,我們對(duì)某些特殊字符是需要轉(zhuǎn)義處理的寥院,否則就識(shí)別不出來(lái)啦。

  • CFURLCreateStringByAddingPercentEscapes 方法涛目,非法字符是 : @"?!@#$^&%*+,:;='\”<>()[]{}/\| "
urlStr = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(
        kCFAllocatorDefault, 
        (CFStringRef) urlStr,
         nil, 
        CFSTR("?!@#$^&%*+,:;='\"`<>()[]{}/\\| "),
        kCFStringEncodingUTF8)
);
  • stringByAddingPercentEncodingWithAllowedCharacters
NSCharacterSet *allowedCharacters = [[NSCharacterSet characterSetWithCharactersInString: @"?!@#$^&%*+,:;='\"`<>()[]{}/\\| "] invertedSet];
 NSString *encodedUrl = [urlStr stringByAddingPercentEncodingWithAllowedCharacters:allowedCharacters];

PS : stringByAddingPercentEscapesUsingEncoding 已經(jīng)在 iOS9.0 被拋棄了

[urlstr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末秸谢,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子霹肝,更是在濱河造成了極大的恐慌估蹄,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,686評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沫换,死亡現(xiàn)場(chǎng)離奇詭異臭蚁,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)讯赏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)垮兑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人漱挎,你說(shuō)我怎么就攤上這事系枪。” “怎么了磕谅?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,160評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵私爷,是天一觀的道長(zhǎng)雾棺。 經(jīng)常有香客問(wèn)我,道長(zhǎng)当犯,這世上最難降的妖魔是什么垢村? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,736評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮嚎卫,結(jié)果婚禮上嘉栓,老公的妹妹穿的比我還像新娘。我一直安慰自己拓诸,他們只是感情好侵佃,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,847評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著奠支,像睡著了一般馋辈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上倍谜,一...
    開(kāi)封第一講書(shū)人閱讀 50,043評(píng)論 1 291
  • 那天迈螟,我揣著相機(jī)與錄音,去河邊找鬼尔崔。 笑死答毫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的季春。 我是一名探鬼主播洗搂,決...
    沈念sama閱讀 39,129評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼载弄!你這毒婦竟也來(lái)了耘拇?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,872評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宇攻,失蹤者是張志新(化名)和其女友劉穎惫叛,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體逞刷,經(jīng)...
    沈念sama閱讀 44,318評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡挣棕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,645評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了亲桥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,777評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡固耘,死狀恐怖题篷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情厅目,我是刑警寧澤番枚,帶...
    沈念sama閱讀 34,470評(píng)論 4 333
  • 正文 年R本政府宣布法严,位于F島的核電站,受9級(jí)特大地震影響葫笼,放射性物質(zhì)發(fā)生泄漏深啤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,126評(píng)論 3 317
  • 文/蒙蒙 一路星、第九天 我趴在偏房一處隱蔽的房頂上張望溯街。 院中可真熱鬧,春花似錦洋丐、人聲如沸呈昔。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,861評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)堤尾。三九已至,卻和暖如春迁客,著一層夾襖步出監(jiān)牢的瞬間郭宝,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,095評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工掷漱, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粘室,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,589評(píng)論 2 362
  • 正文 我出身青樓切威,卻偏偏與公主長(zhǎng)得像育特,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子先朦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,687評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • 前言的前言 唐巧前輩在微信公眾號(hào)「iOSDevTips」以及其博客上推送了我的文章后缰冤,我的 Github 各項(xiàng)指標(biāo)...
    VincentHK閱讀 5,350評(píng)論 3 44
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件喳魏、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,066評(píng)論 4 62
  • 獨(dú)行長(zhǎng)街棉浸,夜深,人已眠刺彩。風(fēng)涼迷郑,雨未止,燈尚明创倔。 燈下人影平躺嗡害,未帶傘,雨水自發(fā)梢落下畦攘,頗覺(jué)自己如江南大俠行于雨中青...
    孤筆客閱讀 154評(píng)論 0 1
  • 自從菲菲上學(xué)以后 她就越變?cè)介_(kāi)朗 她也實(shí)現(xiàn)了她對(duì)媽媽的承諾 成為了一名學(xué)霸 每次考試都是100分 朋友也越來(lái)越多 ...
    夢(mèng)雪雪閱讀 157評(píng)論 0 0
  • 從北京回來(lái)
    風(fēng)云的自留地閱讀 142評(píng)論 0 0