2014年7月17日 星期四

將NSDate轉成NSString


NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];
cell.detailTextLabel.text = [formatter stringFromDate:[NSDate date]];

2014年7月16日 星期三

關於UINavigationController

在網路上看到一段關於UINavigationController的解釋,我覺得寫得非常好



出處:http://youyuge.com/2013/01/09/Learn-iOS-Development-UITabBarController-And-Review.html

2014年7月10日 星期四

tableView

重新載入資料

全部
[self.tableView reloadData];
更新特定row
[self.tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:UITableViewRowAnimationNone];
別人的文章:UITableViewController 之 dataSource 更新顯示


不知道什麼時候要加@@
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"];


設定接下來要顯示的viewController的title,有兩種方式:

prepareForSegue:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    UIViewController *page2 = segue.destinationViewController;
    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
    (indexPath.row == 0) ? [page2 setTitle:@"Go To Bed Time"] : [page2 setTitle:@"Wake Up Time"];
}

didSelectRowAtIndexPath,需要另外設定目標viewController的Storyboard ID。但如果需要隔空轉換畫面,也就是不用segue轉換畫面的話,比如:同一個button一不同的情況要轉換到不同的view:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIViewController *page2 = [self.storyboard instantiateViewControllerWithIdentifier:@"page3"];
    (indexPath.row == 0) ? [page2 setTitle:@"Go To Bed Time"] : [page2 setTitle:@"Wake Up Time"];
    [self.navigationController pushViewController:page2 animated:YES];
}

如果轉換模式要用modal
[self presentViewController:page2 animated:YES completion:nil];
completion那裡可以放轉換過去後要執行的程式

indexPath

The NSIndexPath class represents the path to a specific node in a tree of nested array collections.
A table has sections and rows, to know where a row is you need to know the index of which section it is in and the index position it is at within that section.
UIKit adds a category to make it easier to work with UITableView's.
@interface NSIndexPath (UITableView)

+ (NSIndexPath *)indexPathForRow:(NSInteger)row inSection:(NSInteger)section;

@property(nonatomic,readonly) NSInteger section;
@property(nonatomic,readonly) NSInteger row;

@end
資料來源:http://stackoverflow.com/a/10807882/3295047

2014年7月9日 星期三

按下backButton所觸動的method

我總共查到四種方法:

方法一:viewWillDisappear
-(void) viewWillDisappear:(BOOL)animated {
    if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) {
       // back button was pressed.  We know this is true because self is no longer
       // in the navigation stack.  
    }
}

方法二:viewDidDisappear
- (void)viewDidDisappear:(BOOL)animated
{
    if (self.navigationController == nil) {
        NSLog(@"self.navigationController == nil");
    }
    if (self.navigationController.view == nil) {
        NSLog(@"self.navigationController.view == nil");
    }
    if (self.navigationController.viewControllers == nil) {
        NSLog(@"self.navigationController.viewControllers = nil");
    }
}

方法三:willMoveToParentViewController:parent
-(void)willMoveToParentViewController:(UIViewController *)parent {
    NSLog(@"This VC has has been pushed popped OR covered"); 
    if (!parent)
        NSLog(@"This happens ONLY when it's popped");
}
使用這個方法有個問題,就是不知道為什麼進入這個viewController也會觸動這個method



方法四:重新寫一個UINavigationBar,把舊的覆蓋掉
Add this custom Button on UINavigationBar , just override this button on BackButton and you can perform any action with click event.
- (void)viewDidLoad
{
        UIImage *backButtonImage = [UIImage imageNamed:@"backbutton.png"];
        UIButton *backbutton = [UIButton buttonWithType:UIButtonTypeCustom];
        //[backbutton setImage:backButtonImage forState:UIControlStateNormal];//this line for set only image on button
        [backbutton setBackgroundImage:backButtonImage forState:UIControlStateNormal];
        [backbutton setTitle:@"Back" forState:UIControlStateNormal];
        backbutton.frame = CGRectMake(0, 0, backButtonImage.size.width, backButtonImage.size.height);
        UIBarButtonItem * back = [[UIBarButtonItem alloc] initWithCustomView:backbutton];
        [backbutton addTarget:self action:@selector(back_Clicked) forControlEvents:UIControlEventTouchUpInside];
        self.navigationItem.leftBarButtonItem = back;
}
when back button clicked bellow method call and you will go to previous viewcontroller.
-(void)back_Clicked{
      [self.navigationController popViewControllerAnimated:YES];
}
出處:http://stackoverflow.com/a/13856441/3295047

不過只不過為了取得觸發按backButton的method有點太大費周章了,原出處是想要自訂UINavigationBar



方法五:下面這幾種方法也是網路上找到的,但不知道為什麼都不能觸發,原因可能是因為在tab下無法啟動,但不知道為什麼我另外開了個project還是不行,以後再來找原因吧,如果有誰知道拜託告訴我~~
- (void)navigationController:(UINavigationController *)navigationController
      willShowViewController:(UIViewController *)viewController
                    animated:(BOOL)animated
{
    NSLog(@"navigationController:willShowViewController:animated");
}

- (void)navigationBar:(UINavigationBar *)navigationBar
           didPopItem:(UINavigationItem *)item
{
    NSLog(@"navigationBar:didPopItem");
    
}

- (UIViewController *)popNavigationItemAnimated:(BOOL)animated
{
    NSLog(@"popNavigationItemAnimated");
    return self.parentViewController;
}

- (id <UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController 
                                   animationControllerForOperation:(UINavigationControllerOperation)operation
                                                fromViewController:(UIViewController *)fromVC
                                                  toViewController:(UIViewController *)toVC
{
    NSLog(@"from VC class %@", [SLWakeUpTwoViewController class]);
    if ([fromVC isKindOfClass:[SLWakeUpTwoViewController class]])
    {
        NSLog(@"Returning from popped controller");
        
    }
    return nil;
}


延伸:如何直接回到 RootViewController(跳過中間的ViewController)

離開頁面dismissViewController

- (IBAction)cancel:(id)sender {
    [self dismissViewControllerAnimated:YES completion:nil];
}

2014年5月21日 星期三

521江子翠捷運站無差別殺人事件

事件本身的新聞我就不放了網路上很多,我簡單講,就是突然有位年輕人在捷運車廂內拿蝴蝶刀隨機無差別的殺人,最後捷運停靠江子翠站,他出車廂後被路人制伏,造成四死二十幾個人傷。

這件事激發了社會幾個層面的思考:
1廢死問題
2台灣社會問題
3政府殺人為什麼大家卻不會這麼憤怒?
4陰謀論、政府趁機擴充警察權力


關於廢死
死刑可以預防犯罪嗎?
支持死刑的人 請放下你們的無知
為什麼要花我們的稅金養死刑犯?
支持死刑的言論很多,但多數論述常犯這種「滑坡謬誤」
世界上還有哪些國家支持死刑
常見的支持死刑的邏輯謬誤
       尤其是兇嫌說:「我知道會被判死刑」這句話徹底的讓大家重新思考死刑的嚇阻性是否真的存在,我想這件事對一般的大眾衝擊必定是非常大的,在幾年前恐怕也是很難想像現在的我已經轉向支持廢死了,在幾年前我也是完全支持死刑的,我很難想像支持廢死的人到底在想什麼,有時候甚至覺得他們在假清高什麼,我就不姓如果他們親人被殺的話,他們還會繼續支持廢死,就算後來聽到蘇友瑞老師說根據研究顯示廢死並不會增加犯罪率,我還是覺得那是在救贖觀的西方國家才行得通,像台灣這種極度修行觀的國家一定要有死刑來維持社會的秩序,如果這些窮凶惡極的人不被處以死刑,死者的家屬心情恐怕永遠難以平復,那些潛在罪犯也會因為看到殺人不會被判死刑而出來殺人,直到最近一兩年因為擔任力行宿舍幹部的關係開始接觸法律,然後在最近一次的灼言社辦關於廢死的講座,我才開始完整的接觸到廢死的人的完整論述,從社會層面到司法、人權問層面都有,廢死真的是個非常大的議題,不是三言兩語可以說清楚的,我也開始理解為什麼會有人說廢死適宜個國家對人權重視程度的指標。

關於社會問題
2014年05月21日,這個社會已經出了問題。
       根據蘇友瑞老師心理學專業的判斷,如果台灣社會的輿論與政府仍然是對這位年輕人充滿了憤怒且敵意,只會像日本的秋葉原殺人事件一樣,讓社會上其他這種反社會人格的人紛紛出來效尤鄭捷的無差別殺人行為而已,因為這些人只有透過這種無差別殺人後大眾對他的憤怒,他才能感受到他自己的存在,唯有大家正視發生這種事是因為這個社會已經出了問題,因而導致反社會人格的人出現,改善社會制度且知道對這種無差別殺人事件的正確反應,對於這種事件的人不怒言相向,讓他發覺他的無差別殺人並不能激起憤怒,使他沒辦法在此獲得相對應的刺激,才能夠避免下一次無差別殺人事件的發生。

關於政府殺人
只有這位東海的學生殺了人嗎?
我也來說點我的看法,這是我在FB發的文:
「好吧 我必須說這次的捷運無差別殺人事件,我感到害怕但也沒那麼害怕,因為殺人的事件其實不斷的在發生,問題只是你們有沒有看到而已。」
圖片來源:https://www.facebook.com/flog.cc/photos/a.199234700099035.44536.192259030796602/744713985551101/?type=1

這件事真的引起了台灣社會非常大的反思,從隔天網路上的懶人包也可以略知一二:

關於政府趁機擴充警察權力
       網路上有人說這位年輕人是國民黨派來的,除了讓民眾發洩對政府和社會的不滿,轉移焦點外(因為之前槍決五名死刑犯由於政府聲望過低已經不管用了,無法拉回大家對政府的好感),更可以讓政府借此擴張警察權力,以避免以後社運有更激烈的行為出現。不過這個猜想前半段我覺得不可能,從各個客觀事實顯示這次的事件是個典型的無差別殺人事件,後半段警察擴權我想可以過幾天再觀察一下,國民黨確實有可能借此擴充權力。
       隔天警察就荷鎗實彈的在捷運站出現,稍微用腦想一下就知道這樣做根本沒用,先不管陰謀論的部分,光這點就可以充分顯示出國民黨政府完全沒有思考過是這個社會出了問題,完全把責任推給個人身上。這種完全沒在思考的作為,也讓我想到之前佔領立法院時國民黨的各種回應,充分顯現國民黨思維的老舊且不知反省。 

關於陰謀論

隔天5/22東海大學發出公開信,非常有高度的ㄧ篇文章,我覺得寫的超級好!!我轉帖民報的新聞,裡面有公開信全文:東海大學發出感人公開信 文情並茂療癒師生

2014年5月15日 星期四

我對Apple欲購買Beats這件事的看法

       Beats是音響耳機界公認的潮牌,我看我朋友普遍認為Apple考慮要買Beats是因為Apple想要強化他們自家的耳機,我倒覺得不是,Apple如果真的要買Beats,那也是想要買Beats的音樂串流服務Beat Music。
       我不認為Apple是想要進軍耳機音響市場,如果要進軍音響耳機市場,那起碼要先讓iTunes開始賣音質更好的音樂,如果空有好的音響沒有好的音源一點意義也沒有,這麼簡單的道理我想Apple是一定知道的,更何況Apple曾在2006年推出iPod Hi-Fi,但在隔年就宣布停產,當時Apple表示:「蘋果已經決定將重心聚焦在iPod與iPhone上面,未來將不再生產iPod Hi-Fi。市場上已經有超過4000種iPod相關週邊產品與數以百計為iPod設計的喇叭系統,足以提供消費者多樣化的選擇。」    
       現在如果Apple要再進入音響或耳機市場,那勢必要有個充分的理由反駁他們當年的說法。
     
       如果真要猜測為什麼Apple要買Beats的話,大家可以從下面這篇報導推敲看看:
蘋果 CEO Cook 談收購 Beats:他們讓音樂有深度,我們希望蘋果也有這樣的天賦
另外Beats 的 CEO Iovine 也這樣說:「他之所以會創立 Beats,是受到 Apple 結合文化與科技的無比能力所激發的靈感」

我想答案很清楚了,Tim Cook看上的就是Beats對品味得追求,至於要怎麼結合Apple現有的產品,讓我們繼續看下去XDD


我在2014/9/4看到這部影片,我想光是看這部影片就可以知道為什麼Apple會想要買Beats了。

2014年5月9日 星期五

討論服貿的內容是個假議題

       我已經懶得再看任何支持核電的文章了,搞了老半天,跟之前討論反黑箱服貿一樣,原因如下:
1反黑箱服貿,所反的當然有黑箱也有服貿,但背後真正反的是中國。
2反核四核電,反的當然有何似工程不良的問題,但背後真正反的是核廢料的處理及我們不願意承受發生核災的風險。

       意思就是說就算服貿的內容討論的再怎麼完整,只要中國有侵略台灣的企圖,我就反服貿;同理,就算核電廠施工再怎麼安全,只要不能處理核廢料跟完全避免核災,我就反核電。

       討論服貿的內容跟討論核電的工程細節都是國民黨的陰謀,完全都是假議題,想要誤導大眾思考的方向,並讓對這類議題完全不關心的人產生認為那些反對的人都不懂,只是為反而反的想法,從佔領立法院第四天江宜樺來到立法院跟林飛帆對談的時候說:「大家真的都懂服貿嗎?」就可以證明我的說法。


2014年5月8日 星期四

台灣相關的書單

這是一些我多年來在網路看到別人推薦的書,分類別整理了一下

歷史(括弧裡是指年代):
  1. 1771福爾摩沙:貝紐夫斯基航海日誌紀實–十八世紀一位匈牙利人筆下的台灣
  2. 看見十九世紀台灣:十四位西方旅行者的福爾摩沙故事
  3. 福爾摩沙紀事:馬偕台灣回憶錄
  4. 大航海時代的台灣
  5. 歷險福爾摩沙:回憶在滿大人、海賊與「獵頭番」間的激盪歲月
  6. 被誤解的臺灣史:1553~1860之史實未必是事實
  7. 被遺誤的台灣:荷鄭台江決戰始末記
  8. 被混淆的臺灣史:1861~1949之史實不等於事實
  9. 臺灣第一領事館:洋人、打狗、英國領事館
  10. 臺灣不教的中國近代史
  11. 近代台灣慘史檔案
  12. 戰後臺灣政治史:中華民國臺灣化的歷程
  13. 走向美麗島──戰後反對意識的萌芽
  14. 沒有黨名的黨─美麗島政團的發展
  15. 暴力與詩歌──高雄事件與美麗島大審
  16. 歷史的凝結──台灣民主運動影像史(1977-1979)
  17. 百年追求: 臺灣民主運動的故事
  18. 台灣史新聞
  19. 台灣史101問
  20. 台灣—苦悶的歷史
  21. 在那明亮的地方:台灣民主地圖
  22. 無岸的旅途:陷在時代困局中的兩岸報導
  23. 少年臺灣史:寫給島嶼的新世代和永懷少年心的國人
  24. 臺灣歷史圖說

日治時期:
  1. 素描福爾摩沙:甘為霖台灣筆記
  2. 台灣踏查日記(上):伊能嘉矩的台灣田野探勘
  3. 台灣踏查日記(下):伊能嘉矩的台灣田野探勘
  4. 伊能嘉矩:臺灣歷史民族誌的展開
  5. 探險台灣:鳥居龍藏的台灣人類學之旅
  6. 生蕃行腳:森丑之助的台灣探險
  7. 台灣西方文明初體驗(經典版)
  8. 日本皇族的台灣行旅:蓬萊仙島菊花香
  9. 看不見的邊緣:日治台灣邊緣史讀本
  10. 島嶼浮世繪:日治臺灣的大眾生活
  11. 臺灣摩登咖啡屋:日治臺灣飲食消費文化考
  12. 日治台灣生活史:日本女人在台灣(昭和篇 1926-1945)
  13. 臺灣農家經濟史之重新詮釋
  14. 臺灣日治時代的租佃制度
  15. 總力戰與臺灣:日本殖民地的崩潰
  16. 南風如歌:一位日本阿嬤的臺灣鄉愁

近代:
  1. 兩岸波濤二十年紀實

二二八:
  1. 被出賣的台灣
  2. 唐山看台灣:228事件前後中國知識分子的見證
  3. 解碼二二八——解開二二八事件處理大綱的歷史謎團
  4. 寒村的哭泣鹿窟事件
  5. 福爾摩沙的呼喚:一位紐西蘭人在台灣二二八事件的親身經歷
  6. 第三隻眼睛看二二八:美國外交檔案揭密
  7. 毋通袂記:1947島國的傷痕
  8. 傳染病與228

國民黨:
  1. 向下紮根:中國國民黨與臺灣地方政治的發展(1949-1960)
  2. 馬經:你想像不到的馬英九
  3. 馬經Ⅱ:你必須知道的馬英九
  4. 買來的政權:台灣選舉文化觀察

庶民歷史:
  1. 小的台灣史(清領時期)
  2. 悲情車站二二八
  3. 我們台灣這些年(1977年至今)
  4. 一九四六.被遺忘的台籍青年

回憶錄/人物:
  1. 二二八消失的台灣菁英
  2. 十字架上的校長─張敏之 夫人回憶錄
  3. 台灣,打拼:康寧祥回憶錄
  4. 買票懺悔錄
  5. 只有香如故:林義雄家書
  6. 許世楷與台灣認同外交
  7. 紅雲:嚴秀峰傳
  8. 衝突與挑戰:史明生命故事
  9. 實踐哲學:青年讀史明
  10. 榮町少年走天下——羅福全回憶錄
  11. 一代醫人杜聰明
  12. 剩下就是你們的事了:行動思想家鄭南榕
  13. 史明口述史
  14. 蕉神吳振瑞回憶錄
  15. 我的大話人生:「大話新聞」停播始末&我所認識的鄭弘儀
  16. 見證台灣:蔣經國與我
  17. 十字架上的校長─張敏之 夫人回憶錄
  18. 壓不扁的玫瑰:一位母親的318運動事件簿
  19. 關不住的聲音
  20. 無法送達的遺書:記那些在恐怖年代失落的人
  21. 跨世紀的糾葛

台灣原住民:
  1. 大肚王國的故事
  2. 台灣血統:25項歷史證據,揭開台灣人身世之謎!
  3. 我們流著不同的血液:台灣各族群身世之謎
  4. 番人之眼
  5. 台灣文化誌
  6. 雲端上消失的獵人:再現八通關布農族的聚落原貌與遷移
  7. 福爾摩沙及其住民:19世紀美國博物學家的台灣調查筆記
  8. 平埔認同的消失與再現
  9. 臺灣的拜壺民族
  10. 台灣南島民族的族群與遷徙
  11. 平埔族調查旅行:伊能嘉矩(台灣通信)選集
  12. 番頭家:清代臺灣族群政治與熟番地權
  13. 打狗社最後的身影

文化:
  1. 儒禍
  2. 奧屎中國文化:消除骨灰罈魔咒
  3. 台灣人也不知道的台式國語
  4. 想像和界限:臺灣語言文體的混生
  5. 日本留給台灣的精神文化遺產
  6. 我的心靈簡史:文化台獨筆記
  7. 隨筆台灣日子
  8. 台灣人症頭:受虐性格的心理分析
  9. 風和日暖:台灣外省人與國家認同的轉變
  10. 小港包的台北五四三
  11. 蛤ㄏㄚˊ!台灣人來了:日本人眼中,你一定會愛上台灣的N個理由

自我認同:
  1. 成為「日本人」:殖民地台灣與認同政治


地理:
  1. 浸水營古道:一條走過五百年的路
  2. 能高越嶺道穿越時空之旅
  3. 圖說台灣地名故事
  4. 濁水溪三百年——歷史.社會.環境 
  5. 歷史視野中的地方與變遷:濁水溪的二水、北斗、二林
  6. 日治時期的基隆與宜蘭
  7. 古地圖看台北
  8. 被誤解的台灣老地名:從古地圖洞悉台灣地名的前世今生

政治:
  1. 打破神話:台灣人的認同與國民黨殖民遺害(中英對照)
  2. 雷震與台灣民主憲政的發展

人權:

  1. 鐵籠裡的祕密


經濟:
  1. 台灣貿易史


醫療:

  1. 恐慌,在政治瘟疫蔓延時


評論:
  1. 民進黨為什麼失去政權?解開本土政權不保的迷惑
  2. 我看台灣與台灣人

中國:
  1. 台灣這些年所知道的祖國
  2. 出逃!出路?離開中國之後…
  3. 跛腳的巨人:中國即將爆發的危機
  4. 十世班禪大師七萬言書
  5. 殺佛
  6. 一個中國人的台灣情
  7. 從左到右六十年:曾永賢先生訪談錄

小說:
  1. 穿越時空的旅行:臺灣四大河流的故事

袁紅冰(按出版時間順序):
  1. 台灣大國策
  2. 台灣大國魂
  3. 台灣大劫難
  4. 被囚禁的台灣:國共聯手構陷本土政權陰謀侵吞台灣
  5. 殺佛:十世班禪大師蒙難真相 十世班禪大師蒙難真相 當代滅佛運動
  6. 台灣生死書:自己的國家自己救
  7. 文化與命運──袁紅冰流亡文選

管仁建(按出版順序):
  1. 你不知道的台灣.國軍故事
  2. 你不知道的台灣.校園奇案
  3. 你不知道的台灣.影視秘辛

文學:
  1. 阿媽阿公講予囡仔聽的台灣故事

旅行:
  1. 為什麼去遠方:啟程,到別人的生命裡尋找答案

外國人看台灣:
  1. 亞細亞的好孩子:一個大陸學生視野下的台灣

紅字是已絕版,在露天上還找的到

經濟有關的書

自由貿易有關的書:
  1. 不公平的代價
  2. 富國的糖衣:揭穿自由貿易的真相

跟資本主義有關的
  1. 資本主義沒告訴你的23件事
  2. 資本社會的17個矛盾
  3. 告別施捨:世界經濟簡史(還沒仔細看內容)
  4. 二十一世紀資本論
  5. 父酬者