- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试从 UITableView 列表调用详细信息屏幕 - 但在接收 View 中未调用委托(delegate) - 我将发布所有代码:
列出头文件:
#import <UIKit/UIKit.h>
#import "tank.h"
@class iTanksV2ListViewController;
@protocol iTanksV2ListViewControllerDelegate
- (void) iTanksListViewController:(iTanksV2ListViewController *) sender choseTank:(tank *)tank;
@end
@interface iTanksV2ListViewController : UITableViewController
@property (nonatomic, strong) NSArray *tanks;
@property (weak, nonatomic) IBOutlet UITableView *tankTableView;
@property (weak, nonatomic) id <iTanksV2ListViewControllerDelegate> delegate;
@end
和 m 文件:
#import "iTanksV2ListViewController.h"
#import "tank.h"
#import "tankDetailViewController.h"
@interface iTanksV2ListViewController ()
@end
@implementation iTanksV2ListViewController
@synthesize tanks = _tanks;
@synthesize tankTableView = _tankTableView;
@synthesize delegate = _delegate;
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Uncomment the following line to preserve selection between presentations.
// self.clearsSelectionOnViewWillAppear = NO;
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
- (void)viewDidUnload
{
[self setTankTableView:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;//keep this section in case we do need to add sections in the future.
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return [self.tanks count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Tank List Table Cell";
UITableViewCell *cell = [self.tankTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell)
{
cell = [[UITableViewCell alloc] initWithFrame:CGRectZero];
}
tank *thisTank = [self.tanks objectAtIndex:indexPath.row];
cell.textLabel.text = thisTank.tankNumber;
return cell;
}
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"Show Tank Details"])
{
}
}
#pragma mark - Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
tank *thisTank = [self.tanks objectAtIndex:indexPath.row];
[self.delegate iTanksListViewController:self choseTank:thisTank];
}
@end
和接收文件的标题:
#import <UIKit/UIKit.h>
#import "tankGauge.h"
#import "tank.h"
@interface tankDetailViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *tankNumberLabel;
@property (weak, nonatomic) IBOutlet UILabel *tankProductLabel;
@property (weak, nonatomic) IBOutlet UILabel *tankAvailableProductLabel;
@property (weak, nonatomic) IBOutlet UILabel *tankMaxVolumeLabel;
@property (weak, nonatomic) IBOutlet tankGauge *tankVolumeGauge;
@property (weak, nonatomic) tank* tankToShow;
@end
...和 m 文件:
#import "tankDetailViewController.h"
#import "iTanksV2ListViewController.h"
@interface tankDetailViewController () <iTanksV2ListViewControllerDelegate>
@end
@implementation tankDetailViewController
@synthesize tankNumberLabel = _tankNumberLabel;
@synthesize tankProductLabel = _tankProductLabel;
@synthesize tankAvailableProductLabel = _tankAvailableProductLabel;
@synthesize tankMaxVolumeLabel = _tankMaxVolumeLabel;
@synthesize tankVolumeGauge = _tankVolumeGauge;
@synthesize tankToShow = _tankToShow;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
}
-(void)iTanksListViewController:(iTanksV2ListViewController *)sender choseTank:(id)tank
{
self.tankToShow = tank;
self.tankNumberLabel.text = self.tankToShow.tankNumber;
}
- (void)viewDidUnload
{
[self setTankNumberLabel:nil];
[self setTankProductLabel:nil];
[self setTankAvailableProductLabel:nil];
[self setTankMaxVolumeLabel:nil];
[self setTankVolumeGauge:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
@end
最佳答案
tankTableView
是一个 IBOutlet
,因此您只需将 tableView 的委托(delegate)和数据源连接到您的 中的
如下图: File's Owner
>xib
关于ios - UITableViewDelegate 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9869769/
我使用 IB 在 Storyboard 中创建了一个 UITableViewController。我将 UITableview 的 delegate 设置为它的 Controller 。 UITabl
我是 iOS 新手,所以如果这是一个基本问题,请耐心等待。我正在关注 these tutorials在第 43 讲中,这个人删除了现有的 View Controller 并添加了一个新的 View C
我的应用程序中有一个 UITableView,我试图将其委托(delegate)方法拉入单独的 UITableViewDelegate 中。这是代码的样子: RestaurantViewDelegat
我有一个包含多个部分的 UITableView。我有一个 NSMutableArray 作为数据源 (floorArray)。当我重新加载 tableview 数据时,我得到 [FloorGroup
我正在尝试从 UITableView 列表调用详细信息屏幕 - 但在接收 View 中未调用委托(delegate) - 我将发布所有代码: 列出头文件: #import #import "tank
我有一个类定义如下: @interface ClassViewController : ContentViewController { IBOutlet UITableView* mTabl
我想将 UITableViewDataSource、UITableViewDelegate 分离到另一个类中,以减少和更改 UITableView 中的委托(delegate) 这是我的代码Group
UITableViewDelegate(甚至可能是 UITableViewDataSource)上似乎应该有一个 API 来让代理知道 UITableView 何时更改编辑状态。但我找不到类似的东西。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及
我有一个带有 TableView 的 TableView Controller ,我在 Storyboard 中设置了一个 TableView Controller ,并从 mapViewContro
我想问一个关于 TableView 和@synchronized 结构的问题。我必须在 didSelectRowAtIndexPath 中执行一次代码,即使用户继续点击表格单元格... 我有一张 ta
所以我正在使用 this library这允许我在向下滚动时压缩的表格 View 顶部制作一个栏。现在我使用桥接头将它安装在我的 Swift 项目中。所以我按照实现指南,将所有代码转换为 Swift
我没有将 View Controller 指定为 UITableViewDelegate,而是尝试通过为 UITableViewDelegate 创建扩展来减少 View Controller 中的代
我正在编写 UITableView 的子类,我希望我的子类在将它们传递给“真正的”委托(delegate)之前处理一些 UITableViewDelegate 方法本身,并转发我的子类未实现的所有 U
我正在做一些研究以获得 tableview 委托(delegate)方法的准确执行顺序。 情况 1:行数 - 对于小值 所以首先我创建了 100 行并发现执行流程如下。 numberOfSection
问题是这样的: 我需要能够在具有大量 tableView 的大型现有应用程序中获取有关 didSelectRowAtIndexPath 的分析。 我的第一个想法是在 didSelectRowAtInd
有人告诉我 UITableViewDelegate 和 UITableViewDatasource 之间的区别吗? 最佳答案 UITableViewDelegate 作为表格的委托(delegate)
在我所有的 UITableView 编程中,我总是在 -[UITableViewDataSource tableView:cellForRowAtIndexPath:] 中配置我的 UITableVi
我将在 tableView 上设置 UITableViewDelegate,但如果这样做,行高会发生变化:第一张图是没有代表团;第二个带有委托(delegate)(顺便说一句。缺少服务 1 是正确的)
有没有办法在表格重新加载数据时保持当前向左或向右滑动的 UITableView UITableViewCell ? 我有一个表,每分钟重新加载数据以保持最新。我使用 UITableViewDelega
我是一名优秀的程序员,十分优秀!