﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Neil的备忘录-随笔分类-Iphone Development</title><link>http://www.blogjava.net/zl4393753/category/46553.html</link><description>just do it</description><language>zh-cn</language><lastBuildDate>Thu, 14 Oct 2010 02:35:06 GMT</lastBuildDate><pubDate>Thu, 14 Oct 2010 02:35:06 GMT</pubDate><ttl>60</ttl><item><title>创建自定义返回按钮</title><link>http://www.blogjava.net/zl4393753/archive/2010/10/13/335069.html</link><dc:creator>Neil's NoteBook</dc:creator><author>Neil's NoteBook</author><pubDate>Wed, 13 Oct 2010 14:14:00 GMT</pubDate><guid>http://www.blogjava.net/zl4393753/archive/2010/10/13/335069.html</guid><wfw:comment>http://www.blogjava.net/zl4393753/comments/335069.html</wfw:comment><comments>http://www.blogjava.net/zl4393753/archive/2010/10/13/335069.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zl4393753/comments/commentRss/335069.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zl4393753/services/trackbacks/335069.html</trackback:ping><description><![CDATA[<meta charset="utf-8" /><span  style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; ">
<pre class="alt2" dir="ltr" style="color: #000000; background-image: initial; background-repeat: initial; background-attachment: initial; background-color: #eaebed; border-bottom-width: 1px; border-bottom-style: inset; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 6px; padding-bottom: 6px; padding-left: 6px; border-top-width: 1px; border-right-width: 1px; border-left-width: 1px; border-top-style: inset; border-right-style: inset; border-left-style: inset; border-color: initial; width: 640px; height: 50px; text-align: left; overflow-x: auto; overflow-y: auto; ">UIBarButtonItem *backButton = [[[UIBarButtonItem alloc] initWithTitle:@"my back button" style:UIBarButtonItemStyleBordered target:nil action:nil] autorelease];&nbsp;</pre>
<pre class="alt2" dir="ltr" style="color: #000000; background-image: initial; background-repeat: initial; background-attachment: initial; background-color: #eaebed; border-bottom-width: 1px; border-bottom-style: inset; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 6px; padding-bottom: 6px; padding-left: 6px; border-top-width: 1px; border-right-width: 1px; border-left-width: 1px; border-top-style: inset; border-right-style: inset; border-left-style: inset; border-color: initial; width: 640px; height: 50px; text-align: left; overflow-x: auto; overflow-y: auto; ">self.navigationItem.leftBarButtonItem = backButton;</pre>
</span>
<img src ="http://www.blogjava.net/zl4393753/aggbug/335069.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zl4393753/" target="_blank">Neil's NoteBook</a> 2010-10-13 22:14 <a href="http://www.blogjava.net/zl4393753/archive/2010/10/13/335069.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Iphone 修改默认返回的名称</title><link>http://www.blogjava.net/zl4393753/archive/2010/10/06/333848.html</link><dc:creator>Neil's NoteBook</dc:creator><author>Neil's NoteBook</author><pubDate>Wed, 06 Oct 2010 13:50:00 GMT</pubDate><guid>http://www.blogjava.net/zl4393753/archive/2010/10/06/333848.html</guid><wfw:comment>http://www.blogjava.net/zl4393753/comments/333848.html</wfw:comment><comments>http://www.blogjava.net/zl4393753/archive/2010/10/06/333848.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zl4393753/comments/commentRss/333848.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zl4393753/services/trackbacks/333848.html</trackback:ping><description><![CDATA[<span style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; ">
<p style="font-size: 13px; line-height: 1.4; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; text-indent: 0px; font: normal normal normal 10px/normal Monaco; color: #3e217e; "><span style="line-height: 1.5; font-size: 13px; color: #000000; ">Iphone默认返回按钮的文字是前一个view的title，</span></p>
<p style="font-size: 13px; line-height: 1.4; margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px; ">如果需要修改默认的返回名称，需要在前一个页面的viewDidLoad事件中进行设置：</p>
<p style="font-size: 13px; line-height: 1.4; margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px; ">&nbsp;<span style="line-height: normal; font-size: 13px; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; ">UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"取消" style:UIBarButtonItemStylePlain target:nil action:nil];</span></p>
<span style="line-height: normal; font-size: 13px; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; ">self.navigationItem.backBarButtonItem = backButton;<br />
[backButton release];</span></span>
<img src ="http://www.blogjava.net/zl4393753/aggbug/333848.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zl4393753/" target="_blank">Neil's NoteBook</a> 2010-10-06 21:50 <a href="http://www.blogjava.net/zl4393753/archive/2010/10/06/333848.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Iphone 带NavigationBar的ModalView</title><link>http://www.blogjava.net/zl4393753/archive/2010/10/06/333832.html</link><dc:creator>Neil's NoteBook</dc:creator><author>Neil's NoteBook</author><pubDate>Wed, 06 Oct 2010 10:16:00 GMT</pubDate><guid>http://www.blogjava.net/zl4393753/archive/2010/10/06/333832.html</guid><wfw:comment>http://www.blogjava.net/zl4393753/comments/333832.html</wfw:comment><comments>http://www.blogjava.net/zl4393753/archive/2010/10/06/333832.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zl4393753/comments/commentRss/333832.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zl4393753/services/trackbacks/333832.html</trackback:ping><description><![CDATA[在没有安装显卡驱动的雪豹下开发真是痛苦!<br />
悲剧的thinkpad。。。所以不能截图。。。稀烂！<br />
1. 创建一个viewcontroller，比如SettingViewController，同时创建实现文件和头文件，不多说<br />
2. 创建该viewcontroller对应的view文件，比如SettingView.xib，没什么好说的<br />
3. 双击刚才创建的xib文件，指定class为第一步创建的viewcontroller，在interface builder中将view和file owner连接起来<br />
4. 在创建的SettingViewController.h文件中定义一个bool类型的变量，该变量用来指示modal view是否已弹出，代码如下：
<p class="p2"><span class="s1">@interface</span> SettingViewController : UIViewController {</p>
<p class="p3"><span class="s2"><span class="Apple-tab-span">	</span></span><span class="s1">BOOL</span><span class="s2"> </span>isPushedView<span class="s2">;</span></p>
<p class="p2">}</p>
<p class="p4">@property<span class="s2"> (</span>nonatomic<span class="s2">, </span>readwrite<span class="s2">) </span>BOOL<span class="s2"> isPushedView;</span></p>
<p class="p4"><span class="s2">5. 在SettingViewController.m文件中添加具体实现代码，如下：</span></p>
<p class="p4"><span class="s2">
<p class="p1"><span class="s1">@implementation</span> SettingViewController</p>
<p class="p1"><span class="s1">@synthesize</span> isPushedView;</p>
<p class="p1">- (<span class="s1">void</span>)viewDidLoad {</p>
<p class="p4"><span class="s2">&nbsp; &nbsp; [</span><span class="s1">super</span><span class="s2"> </span>viewDidLoad<span class="s2">];</span></p>
<p class="p2"><span class="Apple-tab-span">	</span></p>
<p class="p5"><span class="s2"></span><span class="s1">&nbsp;&nbsp; &nbsp;if</span><span class="s2">(</span>isPushedView<span class="s2"> == </span><span class="s1">NO</span><span class="s2">) {</span></p>
<p class="p6"><span class="s2"></span><span class="s1">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;self</span><span class="s2">.</span>navigationItem<span class="s2">.</span>title<span class="s2"> = </span><span class="s3">@"</span><span class="s4">设置</span><span class="s3">"</span><span class="s2">;</span></p>
<p class="p6"><span class="s2"></span><span class="s1">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;self</span><span class="s2">.</span>navigationController<span class="s2">.</span>navigationBar<span class="s2">.</span>barStyle<span class="s2"> = </span><span class="s5">UIBarStyleBlack</span><span class="s2">;</span></p>
<p class="p4"><span class="s2"></span><span class="s1">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;self</span><span class="s2">.</span><span class="s6">navigationItem</span><span class="s2">.</span><span class="s6">leftBarButtonItem</span><span class="s2"> = [[[</span><span class="s6">UIBarButtonItem</span><span class="s2"> </span>alloc<span class="s2">] </span>initWithTitle<span class="s2">:</span><span class="s3">@"</span><span class="s4">完成</span><span class="s3">"</span><span class="s2"> </span>style<span class="s2">:</span>UIBarButtonItemStylePlain<span class="s2"> </span>target<span class="s2">:</span><span class="s1">self &nbsp; &nbsp;&nbsp;</span>action<span class="s2">:</span><span class="s1">@selector</span><span class="s2">(</span><span class="s7">cancel_Clicked</span><span class="s2">:)] </span>autorelease<span class="s2">];</span></p>
<p class="p1">&nbsp;&nbsp; &nbsp;}</p>
<p class="p1">}</p>
<p class="p2"><br />
</p>
<p class="p1">-(<span class="s1">void</span>) cancel_Clicked:(<span class="s1">id</span>)sender { &nbsp; &nbsp;</p>
<p class="p4"><span class="s2">&nbsp;&nbsp; &nbsp;[</span><span class="s1">self</span><span class="s2">.</span><span class="s6">navigationController</span><span class="s2"> </span>dismissModalViewControllerAnimated<span class="s2">:</span><span class="s1">YES</span><span class="s2">];&nbsp; &nbsp; &nbsp;</span></p>
<p class="p1">}</p>
<p class="p2"><br />
</p>
<p class="p1">- (<span class="s1">BOOL</span>)shouldAutorotateToInterfaceOrientation:(<span class="s6">UIInterfaceOrientation</span>)<span class="s6">interfaceOrientation</span> {</p>
<p class="p3"><span class="s2">&nbsp; &nbsp; </span>// Return YES for supported orientations</p>
<p class="p4"><span class="s2">&nbsp; &nbsp; </span><span class="s1">return</span><span class="s2"> (</span><span class="s6">interfaceOrientation</span><span class="s2"> == </span>UIInterfaceOrientationPortrait<span class="s2">);</span></p>
<p class="p1">}</p>
</span></p>
6. 在RootViewController.h文件中定义变量，代码如下:<br />
<p class="p1"><span class="s1">@class</span><span class="s2"> </span>SettingViewController<span class="s2">;</span></p>
<p class="p3"><span class="s1">@interface</span> RootViewController : UITableViewController {</p>
<p class="p1"><span class="s2"><span class="Apple-tab-span">	</span></span>SettingViewController<span class="s2"> *</span>settingViewController<span class="s2">;</span></p>
<p class="p4"><span class="s2"><span class="Apple-tab-span">	</span></span>UINavigationController<span class="s2"> *</span><span class="s3">settingNavController</span><span class="s2">;</span></p>
<p class="p3">}</p>
<p class="p3">7. 在RootViewController.m文件中添加实现代码，如下：</p>
<p class="p3">
<p class="p1">- (<span class="s1">void</span>) settingClicked { &nbsp;</p>
<p class="p2"><span class="s2"><span class="Apple-tab-span">	</span></span><span class="s1">if</span><span class="s2">(</span>settingViewController<span class="s2"> == </span><span class="s1">nil</span><span class="s2">) {</span></p>
<p class="p2"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>settingViewController<span class="s2"> = [[</span>SettingViewController<span class="s2"> </span><span class="s3">alloc</span><span class="s2">] </span><span class="s3">initWithNibName</span><span class="s2">:</span><span class="s4">@"SettingView"</span><span class="s2"> </span><span class="s3">bundle</span><span class="s2">:[</span><span class="s5">NSBundle</span><span class="s2"> </span><span class="s3">mainBundle</span><span class="s2">]];</span></p>
<p class="p2"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>settingViewController<span class="s2">.</span>isPushedView<span class="s2"> = </span><span class="s1">NO</span><span class="s2">;</span></p>
<p class="p1"><span class="Apple-tab-span">	</span>}</p>
<p class="p3"><span class="Apple-tab-span">	</span></p>
<p class="p2"><span class="s2">&nbsp; &nbsp; </span><span class="s1">if</span><span class="s2">(</span>settingNavController<span class="s2"> == </span><span class="s1">nil</span><span class="s2">) {</span></p>
<p class="p2"><span class="s2">&nbsp; &nbsp; &nbsp; &nbsp; </span>settingNavController<span class="s2"> = [[</span><span class="s5">UINavigationController</span><span class="s2"> </span><span class="s3">alloc</span><span class="s2">] </span><span class="s3">initWithRootViewController</span><span class="s2">:</span>settingViewController<span class="s2">];</span></p>
<p class="p4"><span class="s2"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>[</span><span class="s1">self</span><span class="s2">.</span><span class="s5">navigationController</span><span class="s2"> </span>presentModalViewController<span class="s2">:</span><span class="s6">settingNavController</span><span class="s2"> </span>animated<span class="s2">:</span><span class="s1">YES</span><span class="s2">]; &nbsp;</span></p>
<p class="p1"><span class="Apple-tab-span">	</span>}</p>
<p class="p1">}</p>
<p class="p1">8. DONE!!!</p>
</p>
<img src ="http://www.blogjava.net/zl4393753/aggbug/333832.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zl4393753/" target="_blank">Neil's NoteBook</a> 2010-10-06 18:16 <a href="http://www.blogjava.net/zl4393753/archive/2010/10/06/333832.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Iphone 不同页面间跳转</title><link>http://www.blogjava.net/zl4393753/archive/2010/10/06/333828.html</link><dc:creator>Neil's NoteBook</dc:creator><author>Neil's NoteBook</author><pubDate>Wed, 06 Oct 2010 08:34:00 GMT</pubDate><guid>http://www.blogjava.net/zl4393753/archive/2010/10/06/333828.html</guid><wfw:comment>http://www.blogjava.net/zl4393753/comments/333828.html</wfw:comment><comments>http://www.blogjava.net/zl4393753/archive/2010/10/06/333828.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zl4393753/comments/commentRss/333828.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zl4393753/services/trackbacks/333828.html</trackback:ping><description><![CDATA[1. 创建一个新的viewcontroller，比如 NewOrderViewController,同时创建实现文件和头文件<br />
2. 创建一个view，比如 NewOrderView.xib<br />
3. 双击打开NewOrderView.xib，指定其class为 NewOrderViewController，并在 Interface Builder中将view与File Owner连接起来<br />
4. 在RootViewController.h文件中定义 NewOrderViewController, 设置其为属性,代码如下:<br />
<p class="p1">
<p class="p1"><span class="s1">@class</span><span class="s2"> </span>NewOrderViewController<span class="s2">;</span></p>
<p class="p3"><span class="s1">@interface</span> RootViewController : UITableViewController {</p>
<p class="p1"><span class="s2"><span class="Apple-tab-span">	</span></span>NewOrderViewController<span class="s2"> *</span>newOrderViewController<span class="s2">;</span></p>
<p class="p3">}</p>
<p class="p3"><span class="s1">@property</span> (<span class="s1">nonatomic</span>, <span class="s1">retain</span>) NewOrderViewController *newOrderViewController;<br />
<br />
</p>
<p class="p3">5. 在RootViewController.m文件中实现跳转，代码如下:<br />
//添加按钮</p>
<p class="p1">- (<span class="s1">void</span>)viewDidLoad {</p>
<p class="p2"><span class="s2">&nbsp; &nbsp; [</span><span class="s1">super</span><span class="s2"> </span>viewDidLoad<span class="s2">];</span></p>
<p class="p3"><br />
</p>
<p class="p4"><span class="s2">&nbsp; &nbsp; </span><span class="s1">self</span><span class="s2">.</span>navigationItem<span class="s2">.</span>title<span class="s2"> = </span><span class="s3">@"订单</span><span class="s4">列表</span><span class="s3">"</span><span class="s2">;</span></p>
<p class="p4"><span class="s2"></span><span class="s1">&nbsp;&nbsp; &nbsp;self</span><span class="s2">.</span>navigationController<span class="s2">.</span>navigationBar<span class="s2">.</span>barStyle<span class="s2"> = </span><span class="s5">UIBarStyleBlack</span><span class="s2">;</span></p>
<p class="p2"><span class="s2"></span><span class="s6">&nbsp;&nbsp; &nbsp;UIBarButtonItem</span><span class="s2"> *buttonEdit = [[[</span><span class="s6">UIBarButtonItem</span><span class="s2"> </span>alloc<span class="s2">] </span>initWithTitle<span class="s2">:</span><span class="s3">@"</span><span class="s4">编辑</span><span class="s3">"</span><span class="s2"> </span>style<span class="s2">:</span>UIBarButtonItemStyleBordered<span class="s2"> </span>target<span class="s2">:</span><span class="s1">self &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span>action<span class="s2">:</span><span class="s1">@selector</span><span class="s2">(editCharacters)] </span>autorelease<span class="s2">];</span></p>
<p class="p2"><span class="s2"></span><span class="s6">&nbsp;&nbsp; &nbsp;UIBarButtonItem</span><span class="s2"> *buttonAdd = [[[</span><span class="s6">UIBarButtonItem</span><span class="s2"> </span>alloc<span class="s2">] </span>initWithBarButtonSystemItem<span class="s2">:</span>UIBarButtonSystemItemAdd<span class="s2"> </span>target<span class="s2">:</span><span class="s1">self</span><span class="s2"> </span>action<span class="s2">:</span><span class="s1">@selector</span><span class="s2">(</span><span class="s7">showNewOrderView</span><span class="s2">)] </span>autorelease<span class="s2">];</span></p>
<p class="p3"><span class="Apple-tab-span">	</span></p>
<p class="p4"><span class="s2"></span><span class="s1">&nbsp;&nbsp; &nbsp;self</span><span class="s2">.</span>navigationItem<span class="s2">.</span>leftBarButtonItem<span class="s2">=buttonEdit;</span></p>
<p class="p4"><span class="s2"></span><span class="s1">&nbsp;&nbsp; &nbsp;self</span><span class="s2">.</span>navigationItem<span class="s2">.</span>rightBarButtonItem<span class="s2">=buttonAdd;</span></p>
<p class="p3">}&nbsp;</p>
<p class="p3">//实现跳转</p>
<p class="p3">
<p class="p1">- (<span class="s1">void</span>) showNewOrderView {</p>
<p class="p2"><span class="s2"></span><span class="s1">&nbsp;&nbsp; &nbsp;if</span><span class="s2"> (</span><span class="s1">self</span><span class="s2">.</span>newOrderViewController<span class="s2"> == </span><span class="s1">nil</span><span class="s2">) {</span></p>
<p class="p2"><span class="s2"></span>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;NewOrderViewController<span class="s2"> *newOrder = [[</span>NewOrderViewController<span class="s2"> </span><span class="s3">alloc</span><span class="s2">] </span><span class="s3">initWithNibName</span><span class="s2">:</span><span class="s4">@"NewOrderView"</span><span class="s2"> </span><span class="s3">bundle</span><span class="s2">:</span><span class="s1">nil</span><span class="s2">];</span></p>
<p class="p2"><span class="s2"></span><span class="s1">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;self</span><span class="s2">.</span>newOrderViewController<span class="s2"> = newOrder;</span></p>
<p class="p1">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;[newOrder <span class="s3">release</span>];</p>
<p class="p1">&nbsp;&nbsp; &nbsp;}</p>
<p class="p3"><span class="Apple-tab-span">	</span></p>
<p class="p4"><span class="s2">&nbsp;&nbsp; &nbsp;[</span><span class="s1">self</span><span class="s2">.</span><span class="s5">navigationController</span><span class="s2"> </span>pushViewController<span class="s2">:</span><span class="s1">self</span><span class="s2">.</span><span class="s6">newOrderViewController</span><span class="s2"> </span>animated<span class="s2">:</span><span class="s1">YES</span><span class="s2">];</span></p>
<p class="p4"><span class="s2">｝</span></p>
</p>
</p>
<img src ="http://www.blogjava.net/zl4393753/aggbug/333828.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zl4393753/" target="_blank">Neil's NoteBook</a> 2010-10-06 16:34 <a href="http://www.blogjava.net/zl4393753/archive/2010/10/06/333828.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Iphone开发 可编辑表格</title><link>http://www.blogjava.net/zl4393753/archive/2010/10/04/333730.html</link><dc:creator>Neil's NoteBook</dc:creator><author>Neil's NoteBook</author><pubDate>Mon, 04 Oct 2010 07:53:00 GMT</pubDate><guid>http://www.blogjava.net/zl4393753/archive/2010/10/04/333730.html</guid><wfw:comment>http://www.blogjava.net/zl4393753/comments/333730.html</wfw:comment><comments>http://www.blogjava.net/zl4393753/archive/2010/10/04/333730.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zl4393753/comments/commentRss/333730.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zl4393753/services/trackbacks/333730.html</trackback:ping><description><![CDATA[<span style="color: #a9a9a9; font-family: arial, helvetica, hirakakupro-w3, osaka, 'ms pgothic', sans-serif; font-size: 13px; ">
<p style="margin-top: 10px; margin-bottom: 10px; ">In some of the iPhone's default apps, you may find that you can "edit" a table, then have little red minus signs appear to the left of the table, giving you the option to delete those rows. So, how do you do that in your own programs?</p>
<p style="margin-top: 10px; margin-bottom: 10px; ">The answers, it turns out, is a very simple one:</p>
<blockquote style="margin-top: 10px; margin-bottom: 10px; ">
<p style="margin-top: 10px; margin-bottom: 10px; ">[self.tableView setEditing:YES animated:YES];</p>
</blockquote>
<p style="margin-top: 10px; margin-bottom: 10px; ">That's literally all you need to do to set up those deletion marks. Then you just need to respond to tableView:commitEditingStyle: forRowAtIndexPath:.</p>
<p style="margin-top: 10px; margin-bottom: 10px; ">However, there are some nuances, particularly the questions of how you start up a table's editing and how you end it, and I'm going to show some real-world examples of those methods over the course of this article ...</p>
<h3 style="font-weight: normal; margin-top: 10px; margin-bottom: 10px; ">An Actual Example</h3>
<p style="margin-top: 10px; margin-bottom: 10px; ">The program that I've showed off elsewhere in this series makes uses of a tableView's editing functionality by allowing the user to delete characters from the app, each of whom are represented by a table row</p>
<p style="margin-top: 10px; margin-bottom: 10px; ">First, you need to set up some way to activate the functionality:</p>
<blockquote style="margin-top: 10px; margin-bottom: 10px; ">
<p style="margin-top: 10px; margin-bottom: 10px; ">- (void)editCharacters {<br />
&nbsp;&nbsp; &nbsp;[self.tableView setEditing:YES animated:YES];<br />
&nbsp;&nbsp; &nbsp;UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; initWithBarButtonSystemItem:UIBarButtonSystemItemDone<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; target:self<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; action:@selector(endTableEditing)];<br />
&nbsp;&nbsp; &nbsp;self.navigationItem.leftBarButtonItem = doneButton;<br />
&nbsp;&nbsp; &nbsp;[doneButton release];</p>
<p style="margin-top: 10px; margin-bottom: 10px; ">&nbsp;&nbsp; &nbsp;self.navigationItem.rightBarButtonItem = nil;<br />
}</p>
</blockquote>
<p style="margin-top: 10px; margin-bottom: 10px; ">This method is triggered when a user selects an "Edit" button. You'll note that besides starting the editing, I also change around the button in my navbar. That's because when a user is editing I no longer need an "Edit" button, but instead require a "Done" button. You might alternatively set buttons' enabled properties to NO ... but in any case, you always need to give users a way to get out of editing mode.</p>
<p style="margin-top: 10px; margin-bottom: 10px; ">Your tableView: method will probably delete the table item from your table and/or the data store that it originates from:</p>
<blockquote style="margin-top: 10px; margin-bottom: 10px; ">
<p style="margin-top: 10px; margin-bottom: 10px; ">- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {</p>
<p style="margin-top: 10px; margin-bottom: 10px; ">&nbsp;&nbsp; &nbsp;if (editingStyle == UITableViewCellEditingStyleDelete) {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;[self recordWasDeleted:indexPath.row];<br />
&nbsp;&nbsp; &nbsp;}<br />
}</p>
</blockquote>
<p style="margin-top: 10px; margin-bottom: 10px; ">For completeness state, I'll also include the method call generated when the "Done" button is clicked:</p>
<blockquote style="margin-top: 10px; margin-bottom: 10px; ">
<p style="margin-top: 10px; margin-bottom: 10px; ">- (void)endTableEditing {<br />
&nbsp;&nbsp; &nbsp;[self.tableView setEditing:NO animated:YES];<br />
&nbsp;&nbsp; &nbsp;[self updateButtons];<br />
}</p>
</blockquote>
<p style="margin-top: 10px; margin-bottom: 10px; ">This is pretty much the opposite of my editCharacters method: the editing is turned back off, then the buttons are returned to their original state.</p>
<p style="margin-top: 10px; margin-bottom: 10px; ">And that's really all you need to do to edit a table: turn editing on, respond to the deletion message, and turn it back off at the end.</p>
<h3 style="font-weight: normal; margin-top: 10px; margin-bottom: 10px; ">Doing More with Table Edits</h3>
<p style="margin-top: 10px; margin-bottom: 10px; ">You do have some other editing possibilities that I'm not going to cover in depth in this article. Most notably, you can adjust the editingStyle property of any individual cell. Apple claims it's set to UITableViewCellEditingStyleNone by default, but it sure looks to me like it's set to UITableViewCellEditingStyleDelete, which is what shows those handsome red minus marks. If you instead want to insert rows, you can set it to UITableViewCellEditingStyleInsert, and then do the appropriate thing when tableView:commitEditingStyle:forRowAtIndexPath: receives input of type insert.</p>
<p style="margin-top: 10px; margin-bottom: 10px; "><em>That's it for me and tables for the nonce. If there's any other topics that you'd like covered regarding them, let me know in the comments. In the meantime, I'm planning to next return to my splashView topic, as some folks have requested in comments.</em></p>
</span>
<img src ="http://www.blogjava.net/zl4393753/aggbug/333730.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zl4393753/" target="_blank">Neil's NoteBook</a> 2010-10-04 15:53 <a href="http://www.blogjava.net/zl4393753/archive/2010/10/04/333730.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>