带有UIView按钮的UIPageControl

我是Objective-C的新手,需要帮助!

我正在关注可以在网上找到的示例“PageControl”。 我在NIB的视图中添加了一个按钮,并在下面找到了一个实现的操作。

这是我在页面控件中显示的视图控制器的定义:

//ContactCardViewController.h
@interface ContactCardViewController : UIViewController 
{
    int pageNumber;
    NSMutableString *s;
}


//ContactCardViewController.m implementation

- (id)initWithPageNumber:(int)page {
    if (self = [super initWithNibName:@"ContactCardViewController" bundle:nil]) {
        s = [[NSString alloc] initWithFormat:@"page: %d", page];            
    }
    return self;
}


- (id)initWithString:(NSDictionary *)_s {
    if (self = [super initWithNibName:@"ContactCardViewController" bundle:nil]) {
        NSMutableString *t = [[NSMutableString alloc] initWithString:_s];
        s = t;
    }
    return self;
}


-(IBAction)callOrAddToContacts:(id)sender
{
    jobtitleLabel.text = s;
}


//AppDelegate.m
//in delegate that loads the scroll view with the view for the current page:

- (void)loadScrollViewWithPage:(int)page {
//init the view this way the page: and the correct page number is displayed
    controller = [[ContactCardViewController alloc]  initWithPageNumber:page ];

//init the view this way,  the value of the first person is always displayed
    controller = [[ContactCardViewController alloc]  initWithString:[[self.allNames objectAtIndex:page] objectForKey:@"firstname"]];

}


请帮我理解为什么当用initWithString创建视图然后通过按钮操作访问时,总是返回列表中第一个人的唯一值。 当我使用initWithPageNumber初始化视图时,s有正确的值Page:X.


在InitWithString代码中,传递的是Dictionary,而不是字符串。

- (id)initWithString:(NSDictionary *)_s {
    if (self = [super initWithNibName:@"ContactCardViewController" bundle:nil]) {
        NSMutableString *t = [[NSMutableString alloc] initWithString:_s];
        s = t;
    }
    return self;
}

您可能希望将其更改为NSString,或将NSMutableString ...更改为NSDictionary的实例。 非此即彼。


发现问题出在plist文件中。 代码很好。

链接地址: http://www.djcxy.com/p/78231.html

上一篇: UIPageControl with UIView with button

下一篇: How to load a UIView using a nib file created with Interface Builder