1
我的問題 - 我想從DetailView中的TableView傳遞信息,但在self.detailViewController.detailItem的某處傳遞了任何值。沒有信息傳遞給DetailView Objective-c
是:
self.detailViewController.detailItem [email protected]"123";
NSString *sss = self.detailViewController.detailItem;
NSLog(@"%@", sss);
在的NSLog輸出(空)
這是我的源代碼:
DetailViewController.h
#import <UIKit/UIKit.h>
@interface DetailViewController : UIViewController <UISplitViewControllerDelegate>
@property id detailItem;
@property id TitleOfDetail;
@property (weak, nonatomic) IBOutlet UILabel *detailDescriptionLabel;
@end
DetailViewController.m
#import "DetailViewController.h"
@interface DetailViewController()
@property (strong, nonatomic) UIPopoverController *masterPopoverController;
- (void)configureView;
@end
@implementation DetailViewController
#pragma mark - Managing the detail item
-(void)setTitleOfDetail:(id)newTitleOfDetail {
NSLog(@"123");
if (_TitleOfDetail != newTitleOfDetail) {
_TitleOfDetail = newTitleOfDetail;
// Update the view.
[self configureView];
}
}
-(void)setDetailItem:(id)newDetailItem
{
NSLog(@"123");
if (_detailItem != newDetailItem) {
_detailItem = newDetailItem;
// Update the view.
[self configureView];
}
if (self.masterPopoverController != nil) {
self.title = self.TitleOfDetail;
[self.masterPopoverController dismissPopoverAnimated:YES];
}
}
- (void)configureView
{
// Update the user interface for the detail item.
NSLog(@"1%@", self.TitleOfDetail);
NSLog(@"2%@", [self.detailItem description]);
if (self.TitleOfDetail) {
self.title = self.TitleOfDetail;
}
if (self.detailItem) {
self.detailDescriptionLabel.text = [self.detailItem description];
}
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self configureView];
}
…
myclass.h
@class DetailViewController;
@interface myclass : UITableViewController
@property DetailViewController *detailViewController;
@end
myclass.m
#import "choiseAvtoController.h"
#import "DetailViewController.h"
@interface myclass()
@end
@implementation myclass
@synthesize detailViewController;
…
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
self.detailViewController.detailItem [email protected]"123";
NSString *sss = self.detailViewController.detailItem;
NSLog(@"%@", sss);
}
在可能是什麼問題,如何解決?
P.S.對不起,我只是在學習))
我想你'當您嘗試設置detailViewController'將不會被初始化'detailItem' – wattson12
@ wattson12是的,我喜歡所有連接)在另一個項目中對我有用 –
你使用故事板嗎?如果答案是「是」,那麼可能會有一個非常好的備選答案。 – dasblinkenlight