`

iPhone开发常用控件之表TableView 【二】,点击一行进行view跳转

    博客分类:
  • ios
ios 
阅读更多
前面的多视图总结已经有过这个实现,现在把他放在这里,主要是练习一下TabView的使用。


Navigation通常与TableView搭配使用,博文iPhone开发常用控件之表TableView【一】 编写了一个TableView的示例,那是一个单视图应用,现在搭配上Navigation将其修改为多视图应用。


1,将TableView示例工程复制一份名称修改为TableViewDemo-Nav,打开该工程进行修改。




2、首先,修改AppDelegate,添加UINavigationController的实例,AppDelegate.h修改后如下:
#import <UIKit/UIKit.h>

@class ViewController;

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@property (strong, nonatomic) ViewController *viewController;
//添加navigationController
@property (strong, nonatomic) UINavigationController *navigationController;
@end





3,修改AppDelegate.m中的didFinishLaunchingWithOptions方法,如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
    //注释掉下面一行代码
    /*
    self.window.rootViewController = self.viewController;*/
    //添加如下代码
    self.navigationController = [[UINavigationController alloc]initWithRootViewController:self.viewController];
    [self.window addSubview:self.navigationController.view];
    
    [self.window makeKeyAndVisible];
    return YES;
}







4、新建视图控制器AppViewController(带xib),如下:
[img]

[/img]




5、ViewController.h修改后如下:
#import <UIKit/UIKit.h>
#import "AppViewController.h"
@interface ViewController : UIViewController

@property(nonatomic,retain)NSMutableArray *apps;
@property(nonatomic,retain)AppViewController *appViewController;
@end





6、ViewController.m中主要是实现了-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath方法,如下:
//实现didSelectRowAtIndexPath
-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    NSString *imageName = [NSString stringWithFormat:@"%d",[indexPath row]+1];
    NSString *appName = [apps objectAtIndex:[indexPath row]];
    //初始化appViewController
    appViewController = [[AppViewController alloc]initWithNibName:@"AppViewController" bundle:nil];
    //传递参数
    appViewController.appName = appName;
    appViewController.appIconName = imageName;
    //跳转到appViewController
    [self.navigationController pushViewController:appViewController animated:YES];
}







7、AppViewController.h如下:
#import <UIKit/UIKit.h>

@interface AppViewController : UIViewController

@property(strong,nonatomic)NSString *appName;
@property(strong,nonatomic)NSString *appIconName;

@property(strong,nonatomic)IBOutlet UILabel *appNameLabel;
@property(strong,nonatomic)IBOutlet UIImageView *appIconImgView;
@end 






8、注意:将输出口与AppViewController.xib中的UI控件相连。AppViewController.xib如下:
[img]

[/img]




9、AppViewController.m如下:
#import "AppViewController.h"

@interface AppViewController ()

@end

@implementation AppViewController
@synthesize appName;
@synthesize appIconName;
@synthesize appNameLabel;
@synthesize appIconImgView;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        self.title = @"AppViewController";
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    
    self.appNameLabel.text = appName;
    self.appIconImgView.image = [UIImage imageNamed:appIconName];
    
    NSLog(@"appName=%@,appIconName=%@",appName,appIconName);
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
    appName = nil;
    appIconName = nil;
    appNameLabel = nil;
    appIconImgView = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end




10、运行效果如下:


[img]

[/img]

[img]

[/img]




  • 大小: 188.4 KB
  • 大小: 10.7 KB
  • 大小: 122.4 KB
  • 大小: 142.8 KB
分享到:
评论

相关推荐

    iPhone开发【七】常用控件之表TableView

    在本教程中,我们将深入探讨“iPhone开发【七】常用控件之表TableView”,并结合提供的源代码来理解其工作原理。 首先,UITableView是一个可以滚动的视图,它可以显示一行行的数据,每行数据称为一个单元格...

    tableview 中一行添加多个view,对view进行删除操作

    在iOS开发中,UITableView是一种常用的数据展示控件,它能够以列表的形式展示各种信息。当我们在一个UITableViewCell中需要展示多个视图(View)时,可能会遇到如何动态地添加和删除这些视图的问题。本篇文章将深入...

    html表格控件tableview-1.1.2

    同时,`tableView`通常支持自定义事件监听,以便在用户交互时触发特定逻辑,如点击行、排序后等。 总之,`html表格控件tableview-1.1.2`是一个强大的前端工具,它简化了HTML表格的开发过程,提供了丰富的功能和良好...

    tableview控件

    例如,`tableView(_:didSelectRowAt:)`会在用户点击一行时被调用,可以用来导航到下一个视图或者执行其他操作。 在性能优化方面,`UITableView`利用了复用机制,通过`dequeueReusableCell(withIdentifier:)`方法...

    IOS开发之tableView点击行跳转并带有“显示”更多功能

    在iOS开发中,TableView是常用的数据展示控件,它允许用户通过点击行来导航到其他视图或执行特定操作。本篇文章将详细介绍如何实现在TableView中点击行进行跳转,并添加“显示更多”的功能,这对于iOS应用的交互设计...

    iphone开发 Tableview QQ菜单

    总的来说,“iphone开发 Tableview QQ菜单”项目涵盖了iOS开发中的基本控件使用、数据源和代理协议的实现、用户交互处理以及UI设计等多个方面,是一个很好的学习和实践案例,可以帮助开发者掌握在iPhone应用中创建...

    js分页控件 Tableview

    **Tableview:一款强大的JS分页控件** Tableview是一款基于JavaScript实现的高效分页控件,特别适合用于网页数据展示。它具有轻量级、易用性高、功能丰富的特点,能帮助开发者轻松实现复杂的数据分页效果,极大地...

    iOS开发之tableView点击下拉扩展与内嵌collectionView上传图片效果

    在iOS开发中,TableView是一种常见的UI组件,用于展示列表数据。本话题主要涉及如何实现TableView的点击下拉扩展以及在内部嵌入CollectionView来实现图片上传的功能。以下将详细阐述这两个核心知识点。 首先,我们...

    iphone开发TableView编辑

    在iPhone开发中,UITableView是一个非常重要的控件,用于展示列表数据。它提供了丰富的功能,包括但不限于数据展示、分组、排序、搜索、编辑等。在本文中,我们将深入探讨UITableView的编辑模式和移动模式,以及如何...

    iPhone开发-控件的使用源代码

    总的来说,"iPhone开发-控件的使用源代码"是一个非常实用的学习资源,它涵盖了iOS开发中控件的基础用法和实际应用,对于初学者和有经验的开发者来说都是很好的参考资料。通过深入研究和实践,我们可以提升对iPhone...

    iphone开发实例 TableView 02

    在iOS开发中,UITableView是应用最广泛的控件之一,它被用来展示列表或者表格数据,常见于各种App的用户界面,如联系人列表、邮件收件箱等。本实例“iphone开发实例 TableView 02”将重点讲解如何通过偏移量(Offset...

    QT下Mingw实现QTtableview中实现添加复选框、按钮控件实例

    在QT开发环境中,Mingw是一个常用的交叉编译器,用于在Windows系统上构建QT应用程序。本实例将探讨如何在QTTableView中集成复选框和按钮控件,以增强用户界面的交互性。QTTableView是QT框架中的一个关键组件,它允许...

    android 控件 tableView tree file

    包jar包含 tableView控件,tree控件 图片控件 二维码扫码生成控件,文件选择控件 file ,k可调用readme类获取使用方法,解析后可获取里面用到的jar包

    QT的TableView实现多级表头

    在QT编程中,`QTableView` 是一个非常重要的控件,用于显示二维表格数据,它可以从`QAbstractItemModel`的子类获取数据。在实际应用中,有时我们需要实现多级表头,以便更好地组织和展示复杂的数据结构。标题“QT的...

    TableView之二分组(汽车案例)

    总的来说,“TableView之二分组(汽车案例)”是一个全面介绍如何在iOS应用中使用UITableView展示分组数据的实战项目。通过学习这个案例,开发者不仅可以掌握UITableView的基本用法,还能了解到数据模型封装和UI设计的...

    iphone开发实例 TableView 01-Basic Table

    本实例“iphone开发实例 TableView 01-Basic Table”旨在介绍如何在iPhone应用中创建和使用基本的表格视图。在这个过程中,我们将探讨`UITableView`的基本用法,包括数据源协议、委托模式以及如何填充单元格。 首先...

    Android-TableView一个像网页上的表格的一个自定义控件

    本主题关注的是"Android-TableView",这是一个专为Android设计的自定义控件,它模仿了网页中的表格样式,提供了灵活的数据展示方式。在Android原生库中,虽然有ListView和GridView等组件可以实现部分表格功能,但...

    QML的TableView中实现数据以不同的形式进行表现-对每列进行自定义

    在QML中,`TableView`是一个非常有用的组件,它用于展示结构化数据,通常用于创建表格或列表视图。在本示例中,我们将探讨如何在`TableView`中实现每列数据以不同的形式表现,这涉及到`Column`和`delegate`的概念。 ...

    iphone 网格tableview实例

    在iOS开发中,UITableView是一种非常重要的视图组件,它用于展示列表数据,是用户界面设计中的核心元素之一。"iPhone网格TableView实例"是指在iPhone应用中使用UITableView来创建类似网格的布局,通常指的是每个...

Global site tag (gtag.js) - Google Analytics