`
hx.19890101
  • 浏览: 109901 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

导航控制器Nav和UITableView的使用

    博客分类:
  • ios
阅读更多
接着我前两篇的登陆继续做,要完成登录成功后显示出导航控制器Nav,再通过Nav里的跳转实现UITableView,效果如下







首先对登录界面进行一下修改,在LoginViewController.h中新添加一个输出口
@interface _1_11LoginViewController : UIViewController {
	IBOutlet UITextField *namefield;
	IBOutlet UITextField *passwordfield;
	IBOutlet UINavigationController *rootController;
}
@property (nonatomic,retain) UITextField *namefield;
@property (nonatomic,retain) UITextField *passwordfield;
@property (nonatomic,retain) UINavigationController *rootController;
-(IBAction)login;
-(IBAction)namefieldEditing:(id)sender;
-(IBAction)changeTextFile;
-(IBAction)doneLogin;
@end
对.h文件在修改
-(IBAction)login{
	if (namefield.text.length<4||passwordfield.text.length<4) {
		NSLog(@"++++++++++");
		UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Wrong" 
							message:@"They are not long enough" 
							delegate:self 
							cancelButtonTitle:@"I konw" 
							otherButtonTitles:nil];
		[alert show];
		[alert release];
	}else {
		[self.view.window addSubview:rootController.view];
	}	
}
再创建两个新类和相应的.xib文件,分别取名successLogin,listViewController。我们再去关注一下LoginViewController.xib文件,拖一个navigation Controller图标到nib主窗口中,那么则新弹出一个视图窗口,按住Ctrl将File‘s Owner拖向Navigation Controller,在选中nib主窗口的第二项
点选图中蓝色区域,再看他的控制器,分别对其修改为



目的是将导航器的方向定位success类和其视图。
我们再对success.xib进行设置,只加入一个按钮,并做相应的关联,对他的.h文件进行编码

@interface successLogin : UIViewController {	
}
-(IBAction)showPressed;
@end

对.m文件进行编码
#import "successLogin.h"
#import "ListViewController.h"
@implementation successLogin
-(IBAction)showPressed{
	ListViewController *myListViewController = [[ListViewController alloc] initWithNibName:@"ListViewController" bundle:nil];
	[self.navigationController pushViewController:myListViewController animated:YES];
	[myListViewController release];
}

下面创建最后一个视图,向视图中拖入一个TableView,选中该控件,按花+2键,将delegate和dataSource都与File‘s Owner连接


对.h文件进行编码
@interface ListViewController : UIViewController 
		<UITableViewDelegate,UITableViewDataSource>{
			IBOutlet UITableView *myTableView;
			NSArray *friendList;
}
@property (nonatomic,retain)UITableView *myTableView;
@property (nonatomic,retain)NSArray *friendList;
@end

对.m文件进行编码
#import "ListViewController.h"
@implementation ListViewController
@synthesize friendList;
@synthesize myTableView;
- (void)viewDidLoad {
    [super viewDidLoad];
	NSArray *array= [[NSArray alloc] initWithObjects:@"劳尔",@"穆里尼奥",@"卡卡",@"罗尼",@"小贝",nil];
	
	self.friendList=array;
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}
- (void)viewDidUnload {
    [super viewDidUnload];
}
- (void)dealloc {
	[myTableView release];
	[friendList release];
    [super dealloc];
}

//添加每一行的信息
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
	static NSString *tag=@"tag";
	UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:tag];
	if (cell==nil) {
		cell=[[[UITableViewCell alloc] initWithFrame:CGRectZero
									 reuseIdentifier:tag] autorelease];
	}
	[cell.textLabel setText:[self.friendList objectAtIndex:[indexPath row]]];
	UIImage *image=[UIImage imageNamed:@"30.png"];//每行添加图片
	cell.image=image;
	return cell;
}

//添加行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
	return [self.friendList count];
}

//使列表重复出现次数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
	return 6;
}


//选中哪一行

-(NSIndexPath *)tableView:(UITableView *)tableView
 willSelectRowAtIndexPath:(NSIndexPath *)indexpath
{
	NSUInteger row=[indexpath row];
	if (row==0) {
		return nil;
	}
	return indexpath;
}

//选中之后的处理
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{
	NSUInteger row=[indexPath row];
	NSString *rowvalue=[friendList objectAtIndex:row];
	NSString *message=[[NSString alloc] initWithFormat:@"你选中了 %@", rowvalue];
	UIAlertView *alert=[[UIAlertView alloc]
						
						initWithTitle:@"恭喜"
						
						message:message
						
						delegate:nil
						
						cancelButtonTitle:@"知道了"
						
						otherButtonTitles:nil];
	
	[alert show];
	
	[message release];
	
	[alert release];
	
}
@end

完成了。
  • 大小: 301.2 KB
  • 大小: 80.6 KB
  • 大小: 107.1 KB
  • 大小: 66.5 KB
  • 大小: 24.8 KB
  • 大小: 18.1 KB
  • 大小: 17 KB
  • 大小: 17.2 KB
分享到:
评论

相关推荐

    《Iphone开发基础教程》第九章 导航控制器和表视图

    本章节——“《Iphone开发基础教程》第九章:导航控制器和表视图”着重讲解了两个核心的UI元素:导航控制器(UINavigationController)和表视图(UITableView)。这两者在许多iOS应用中都扮演着至关重要的角色。 ...

    TableBarViewContrller+NavigationViewController ios经典导航模式

    在iOS中,最典型的导航控制器使用场景就是顶部的导航栏,它显示了一个返回按钮和标题,随着用户在应用中深入,导航栏会自动更新。 在"TableBarViewContrller+NavigationViewController"的组合中,每个`UITabBarItem...

    IOS开发小程序之tableview的使用

    最后,Nav副本可能是导航栏(NavigationBar)的副本,这可能意味着在项目中存在导航控制器(UINavigationController),它管理着一系列的视图控制器,并通过导航栏显示它们之间的层级关系。在UITableView中,我们...

    iphone 应用开发实例之 nav table tar

    - 在Storyboard中,可以通过拖拽UITableView到Scene中,并连接到控制器的IBOutlet。 - 数据源协议(UITableViewDataSource)负责提供表格视图的数据,包括单元格的数量和每个单元格的内容。 - 代理协议...

    Beginning.iOS.5.Development.pdf 源代码

    3. **Nav**:导航控制器(UINavigationController)的实践,演示了如何利用导航控制器实现页面间的层级导航,同时学习使用导航条(Navigation Bar)添加标题和按钮。 4. **Simple Storyboard**:深入理解Storyboard的...

    IOS有用的Demo

    1. **09 Nav**: 这个Demo可能涉及到导航控制器(Navigation Controller)的使用,它是iOS UI设计中的重要组件,用于实现多层级的视图导航。通过导航控制器,用户可以轻松地在多个屏幕间进行前进和后退操作,保持导航...

    swift-滑动推动NavBar效果

    在Swift开发中,实现"滑动推动Nav Bar效果"是一种常见的增强用户界面交互的方法,它通常用于创建类似...通过集成库、设置导航控制器的属性以及实现滚动代理方法,开发者可以轻松地在自己的Swift项目中实现这一功能。

    LHQScreenShotsDemo.zip

    其次,UINavigationController是苹果提供的导航控制器,它管理着一系列的UIViewController,并在屏幕上显示一个堆栈结构的视图控制器。在长截屏的场景中,nav通常用于保持截图过程中的页面层级关系,确保截图的连续...

    Iphone3 开发基础教程

    3. **06 View Switcher**:这部分可能关注视图控制器(View Controller)的切换,这是iOS应用界面管理的核心。学习者将了解到如何在不同的视图之间平滑地导航,例如使用UINavigationController来管理堆栈式视图导航...

    ChangeNavBarAlpha:根据tableview的当前位置改变导航栏的透明度效果通过

    8. **手势识别(GestureRecognizer)**:除了UITableView的代理方法,还可以考虑使用手势识别器(如UIPanGestureRecognizer)来监听用户的触摸滑动,以此来控制导航栏的透明度变化,提供更个性化的交互方式。...

    ios开发记录

    //initWithNibName将控制器绑定xib的方法,如果xib的名称和控制器的类名称相同的时候,直接写init(会自动绑定同名的xib)就可以,如果xib的名称和类名称不同的话,必须手动调用此方法来进行绑定 ...

    QCSwiftTest:swift4自写的测试用的小项目,添加了桥接、数据请求、自写提示框、自定义tableView和collectionView、单例、tab、nav、数据的简单存储和获取等

    这可能涉及到UI设计,以及如何在Swift中创建和管理视图控制器。 “自定义tableView和collectionView”是iOS界面设计中的常见操作。开发者可能实现了自定义的cell,包括自定义布局、添加额外的交互功能或者优化性能...

Global site tag (gtag.js) - Google Analytics