2017年2月28日 星期二

iOS storybaord 上兩個 ViewController 之間用 NSNotificationCenter 的userInfo 傳遞value 的問題

在iOS Swift裡有好幾個傳遞value的方法,

像透過ViewController 的performSegueWithIdentifier(identifier:String,sender:AnyObject?)

透過protocol 傳等等 還有好多方法

但是這次用的是NSNotificationCenter 的userInfo

首先在第一個viewController 用 NSNotificationerCenter.defaultCenter().postName方法
第二個viewController 用 NSNotificationerCenter.defaultCenter().addObserver方法

看了網路上好多人的版本再看看自己的也都對,而且以前做的也成功..找了半天也找不到哪裡問題 後來找到了原因

之前能成功是因為第二個ViewController 不在storyboard上面,而是直接programically 產生的,然後這樣的情況之下 在第二個ViewController裡是觀察的到NSNotificationCenter傳過來的訊息的

之後,也就是這次是兩個ViewController都是在sotryboard上的,所以在第一個viewController 按下按鈕後,第二個viewController是收不到第一個 ViewController的post notification的.

解決辦法就是在第一個viewController 要presentViewController時,把裡面的viewController換成



let storyBoard = UIStoryboard.init(name: "Main", bundle: nil)

        let vc = storyBoard.instantiateViewControllerWithIdentifier("ViewController2")

這樣果然數值就傳過去了


另一個不用這兩行的方法就是 還用performSegueWithIdentifier ,但是 在storyboard上面要把segue kind 改成 "Modal" 而不是預設的"show"

這樣達到一樣效果

2016年10月8日 星期六

on the fly?

最近打開AI作業需求,本來英文認識的字就少,看到很多分開看懂,合在一起看不懂的 更是不在話下

如 on the fly

Google 後才知道除了字面上的 飛行,意思 還有指 某件事進行很快,快速通過

但是看到 其他部落客的Post 才知道,在電腦領域裡, 他有 dynamically generate instead of statically generate的意思...學到

2016年9月21日 星期三

Swift/Objective-C 在UIViewController 加入tableView 卻不能正常顯示Cell 內容?

如果在UIViewController.swift 檔案裡

1. Class後面 已經加了UITableViewDelegate 和 UITableViewDataSource
2. data source 沒問題 (eg.  用一個string array)
3. implement I. func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
II. func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell

兩個方法

而且回傳值也沒什麼問題

那這時候可能是 在 II. method裡面的 let title = UITableViewCell(style:UITableViewCellStyle.,reuseIdentifier: "Cell")

紅色字打錯 而造成 內容顯示不出來.


但這樣還是不會顯示正常內容,因為少了兩行 (至少一行) 程式碼

就是tableView.dataSource = self

P.S 如果需要用到did select 什麼的才要加tableView.delegate = self


2016年9月16日 星期五

Swift UITextField 如何能做到即時拖曳

最近因為研究到 需要能夠即時拖曳來拖曳去的textfield, 所以研究了一下, 一研究就整天沒了..寫下筆記希望以後能提醒自己 (寫的時候是用swift 2.2 & xcode 7.3.1)

由於UITextField 一旦被點下之後,鍵盤馬上就會跳出來, 不管你在touchesBegan 方法裡面寫什麼都沒有用..

異想天開的以為 在這個UITextField上面一個View在疊上一個View不就好了? 測試結果是,即便真的試出來(UIButton 和UITextField 確實可以疊加在上面這個UITextFieldf上) 但是UIView不知道為什麼,在self.view上面看起來是疊了,可是他依然進不了  touchesBegan裡,我給的 CGRectContainsPoint() 方法,  只會辨認出
touchesMoved 裡的  CGRectContainsPoint()

所以到底怎麼做出1. 在那個textField 裡按(不放) 可以拖曳
2. 在textField 裡按下(不移動) 放開 可以編輯


為了解決這個問題,除了原有的tf:UITextField之外

還要有lb:UILabel
跟willMove:Bool
和willEdit:Bool


(假設我們先把這個textField 加到self.view上)
最終我想到的方式就是 touchesBegan 裡 CGRectContainsPoint() 偵測到point 的話, 就設定willMove和willEdit 為true (因為不確定要拖曳還是要輸入文字)  , 然後 在touchesMoved 裡如果willMove為true(表示要拖曳)  這時把 把tf.text(記得拆包) 傳給 lb.UILabel.text, 然後tf就功成身退 可以被removeFromSuperView了 ,但也記得把lb addSubview 進來才能完成這個第一功能,然後 讓 lb 座標 隨著動point 座標滑動 ,最後把willEdit設定為false (因為拖曳就不會進入編輯模式 )


完成第二個task 需要在touchesEnded 裡面 判斷 如果 willEdit為true,且 touch end 的point 在textField的話,那麼就把lb.text 傳給tf.text (同樣的,lb.text要記得拆包) 然後和前面一樣,該remove的還有addSubview的都不要漏掉

如此一來就可以做到 看起來像是可以拖曳的textField了  (希望以後學到其他更高階一點的方法)

2016年5月24日 星期二

Windows10 Weka 安裝完說了要求Java 1.7 但是我已經是1.8怎麼辦?

因為作業關係用了Weka 在Mac上跑來都沒問題,可是在Windows10 上面卻告訴我




這行,查了stackoverflow 才知道原來改了

 regedit > HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment > CurrentVersion

這個值, 從1.8 改成 1.7 就好了

但是之前用了方法不適用,比如把
C:\Windows\System32 下的 java.exejavaw.exe 和javaws.exe 三個檔刪了沒用

或是

C:\ProgramData\Oracle\Java\javapath 目錄下面 刪光也沒用


學到 紀錄一下


2014年3月15日 星期六

Sharing my song of the day March 15th

The Killers 



Mr. Brightside

I'm coming out of my cage
And I've been doing just fine
Gotta gotta gotta be down
Because I want it all
It started out with a kiss
How did it end up like this
It was only a kiss, it was only a kiss
Now I'm falling asleep
And she's calling a cab
While he's having a smoke
And she's taking a drag
Now they're going to bed
And my stomach is sick
And it's all in my head
But she's touching his—chest
Now, he takes off her dress
Now, let me go

I just can't look its killing me
And taking control
Jealousy, turning saints into the sea
Swimming through sick lullabies
Choking on your alibis
But it's just the price I pay
Destiny is calling me
Open up my eager eyes
「Cause I'm Mr Brightside

I'm coming out of my cage
And I've been doing just fine
Gotta gotta gotta be down
更多更詳盡歌詞 在 ※ Mojim.com 魔鏡歌詞網 
Because I want it all
It started out with a kiss
How did it end up like this
It was only a kiss, it was only a kiss
Now I'm falling asleep
And she's calling a cab
While he's having a smoke
And she's taking a drag
Now they're going to bed
And my stomach is sick
And it's all in my head
But she's touching his—chest
Now, he takes off her dress
Now, let me go

I just can't look its killing me
And taking control
Jealousy, turning saints into the sea
Swimming through sick lullabies
Choking on your alibi
But it's just the price I pay
Destiny is calling me
Open up my eager eyes
「Cause I'm Mr Brightside

I never...
I never...
I never...


obviously,this was posted on mirror website
 Mojim.com 魔鏡歌詞網 =

Vocabulary :
lullabies  搖籃曲
alibi 犯罪現場  找藉口  不在場證明
mr. brightside    mr.正面


others:
start out  出發 啓程 開始


Though I just realized this song is a little bit embarrassing to me,I still love the rapid and strong melody in the whole song!


2014年3月1日 星期六

久久一次的維護一下

今天來更新了一下地圖, 日式的梅川屋,京,

西式的維納堤

淞子居 賞味小品

等都已從地圖上移除

感謝你們曾讓我溫飽過 : )