IOS成長之路-導覽列的實現

來源:互聯網
上載者:User

建立這樣一個項目:

在Model中建立一個簡單的 view 介面,而  ViewController  類是一個表格的介面

建立表格的介面:

第一步:

第二步:

注意:  Subclass of  的選項要選擇 UITableViewController

然後下一步,最後點擊create就可以了

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

在ViewController這個介面中建立導航添加進去

/*AppDelegate.h*/#import <UIKit/UIKit.h>@class ViewController;@interface AppDelegate : UIResponder <UIApplicationDelegate>@property (strong, nonatomic) UIWindow *window;//添加導航控制器@property (strong,nonatomic) UINavigationController *iNav;//添加ViewController介面,添加這個介面的目的是為了把導航加入到這個介面中@property (strong,nonatomic) ViewController *viewController;@end

/*AppDelegate.m*/#import "AppDelegate.h"#import "ViewController.h"@implementation AppDelegate@synthesize window = _window;//-----------------@synthesize iNav = _iNav;@synthesize viewController = _viewController;//------------------ (void)dealloc{    [_iNav release];    [_viewController release];        [_window release];    [super dealloc];}- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];    // Override point for customization after application launch.    self.window.backgroundColor = [UIColor whiteColor];    [self.window makeKeyAndVisible];        /*---------------添加的內容----------------*/    self.viewController = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];        //initWithRootViewController  基於哪個頁面導航(就是把導航加到哪個頁面中)    self.iNav = [[UINavigationController alloc]initWithRootViewController:self.viewController];        //添加到window中    [self.window addSubview:self.iNav.view];    //或下面這種方法    //self.window.rootViewController = self.iNav;            return YES;}

然後在 ViewController.m 類中為導覽列寫一個title

在    - (void)viewDidLoad  這個方法中添加:

self.title = @"這是一個導航";

到這裡就實現了在這個介面中添加一個導覽列。



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

但是到這裡並沒有體現出導航的作用,所以,我們進行下面的操作:

這個介面是一個表格介面,在這個介面中新增內容,然後通過它切換到另外一個介面中,從而實現導航的作用:通過導航返回第一個介面中


還是在  ViewController.m  這個類中:

在  - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section  方法中的  

return cell;  前加入這樣一段代碼:

//輸入內容    cell.textLabel.text = @"helloworld";    //得到每一行的索引值  int num = indexPath.row;

在這個類中有這樣兩個方法,分別是設定有幾塊地區和每塊地區有幾行

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{    // Return the number of sections.    // 返回有幾塊地區    return 1;}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{    // Return the number of rows in the section.    return 2;// 返回一個地區有幾行}

這個時候的介面是:





點擊  helloworld  進入下一個介面,就是 UiViewController.xib 介面中,在這個介面中有一個 label 控制項

還是在ViewController.m這個類中實現切換介面的操作:

 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{        UiViewController *viewController = [[UiViewController alloc]initWithNibName:@"UIViewController" bundle:nil];    //navigationController 是從 UIViewController 中繼承下來的屬性,通過這個屬性來調用它的壓棧方法,來實現介面的切換    /*     @property(nonatomic,readonly,retain) UINavigationController *navigationController; // If this view controller has been pushed onto a navigation controller, return it.     */    [self.navigationController pushViewController:viewController animated:YES];                // Navigation logic may go here. Create and push another view controller.    /*     <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil];     // ...     // Pass the selected object to the new view controller.     [self.navigationController pushViewController:detailViewController animated:YES];     [detailViewController release];     */}

注意:不要忘記添加標頭檔 :

#import"UiViewController.h"

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

好了,這樣就實現了導航的作用了

點擊helloworld 進入下一個介面。

進入到第二個介面中可以看到,導覽列的位置上有一個返回的按鈕,點擊就可以返回第一個介面了

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.