IOS学习-导航

1.使用Xcode4.2创建导航使用Single View application模板程序

需要选中Storyboard选项

2.创建成功后会看到一个Navigation Controller这就是一个导航控制器,负责控制画面导航。

选择Editor中的Embed in菜单在导航控制器中嵌入视图控制器,运行你的程序发现多了一点东西

运行:

 

 3.这个时候没有对视图添加任何数据所以是空的,相信大家在学导航这个模块之前已经学过了View Table视图,那么我们添加一个ViewTable到右边的MyRecipeController里面去。

之后编辑这里的文件:

添加两个协议到头文件变量中去:UITableViewDelegate和UITableViewDataSource

然后再实现文件中添加数据,这些数据主要是为了在Table上显示

编辑之后将变量和视图直接建立联系:到StoryBoard中按住Ctrl键然后选择Table View视图拖到下面视图控制器的图标上去和DataSource和Delegate建立联系。

现在我们的导航条还没有名字,选择导航条修改名字:

运行程序出现:

4.现在每一行并没有什么标记和没有导航没有什么区别,我们在StoryBoard中添加一个原型单元格ProtoType Cell,当然也可以自己定制单元格。选择TableView切换到Attribute Inspector窗口设置ProtoType cell的值为1,style设置为Grouped,特别注意的是Indentifler的设置必须与CellForRowAtIndexPath的设置一致。

现在运行程序会出现会在每一行多一个图标,但是对每个行点击还是没有任何反应。

5.为每一行添加行为。

拖动一个view Controller 到右边的图上,然后为了简单在上面添加一个Label,目的了是为了每点击一次行都显示Lable上的文字。所以需要将每一个行和这个新添加的视图建立联系,这就是我们所说的segue。选择ProtoType Cell按住Crtl拖到到新的视图上即可出现三个选项,这里选择push

现在运行程序每次点击一次行都会跳到这个视图中去。

6.数据传递:我们假设想要将每个行的文字传给下个视图的label上显示。

新添加的视图默认是UIViewController类。新建了一个类继承这个UIViewController。在类中添加一个变量存储Label上的显示数据,一个用于数据传递的变量。建立变量于label之间的关联,还是ctrl+拖动。并添加一个方法:

- (void)viewDidLoad 
{ 

     [super viewDidLoad]; 
     recipeLabel.text = recipeName; 
}

现在要做的是使用连线传递数据了。

在住ViewController 文件中添加一个方法:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqualToString:@"showRecipeDetail"]) { 

        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
RecipeDetailViewController *destViewController = 

segue.destinationViewController; 

        destViewController.recipeName = [recipes objectAtIndex:indexPath.row]; 

    } 

} 

现在基本差不多了 你会发现你还没有引入新建立的View的类的头文件

但是仍旧是报错的呢!为什么?self.tableView是什么东西 不认识。所以还需要添加一个变量tableview,并用IBOutet修饰:

@property (nonatomic, strong) IBOutlet UITableView *tableView; 

并在实现文件中同步下。
OK现在数据就这么巧妙的传过去了。



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值